コマンドラインオプション PHP バイナリにより提供されるコマンドラインオプションの一覧は、 -h スイッチを指定して PHP を実行することにより いつでも調べることができます。 Usage: php [options] [-f] <file> [--] [args...] php [options] -r <code> [--] [args...] php [options] [-B <begin_code>] -R <code> [-E <end_code>] [--] [args...] php [options] [-B <begin_code>] -F <file> [-E <end_code>] [--] [args...] php [options] -- [args...] php [options] -a -a Run interactively -c <path>|<
file_get_contents() はファイルパスを指定してデータを取得するだけではなく URLを指定すればそのURLの情報を手軽にとれる関数ですが 対API等に使うと色々とハマるポイントが多いので、それを簡単に解説したものです。 ※このページ向け に書いていたものですが、コード量が多いので分割しました。 問題点 file_get_contents() は ヘッダ情報の保持ルールやタイムアウト処理に癖があるため 返却されるステータスコードや、タイムアウト時に再リクエストなどを行うような 対APIの処理では、それらを知らないと想定していない事態に陥る。 コード例と解説 以下の要件でfunctionを書くとします。 jsonが返ってくるAPIにアクセスして、jsonをarray化する。 タイムアウトは3秒とし、そうなった場合は空の配列が返ってくる。 ステータスコードが200以外で返ってきた
PHPでサーバ-サーバ間でREST-APIを使うとき、file_get_contentsを使うのが簡単なんですが、エラーレスポンスの場合、その状況をどう解釈したらいいのかという説明がどうもあいまいな気がしたので、ちょっと調べてみました。 レスポンスコード200とエラー、それと、タイムアウトを判別する方法は、どうやらこんな感じみたいです。 <?php $data = @file_get_contents('http://hostname/resouce', false, stream_context_create(array( 'http' => array( 'timeout'=>10 // 早めにタイムアウト ) )) ); if($data === FALSE) { if(count($http_response_header) > 0) { $stat_tokens = explod
本稿では Key-Value ストア型データベースである Redis にPHPから接続するためのRedisクライアント「Predis」について、概要とインストール方法を解説します。 Predisとは? Predis はオープンソースの Redis クライアントライブラリで、MITライセンスのもとで公開・開発されています。 Predis を利用するメリットとしては、PredisはピュアPHPのライブラリであり、特別な設定などが必要ないことがあります。 Composer などのパッケージ管理ソフトウェアでインストールすることができます。 しかし逆にいうと、C言語で作られたPHP拡張のRedisライブラリと比べて速度は劣る点がデメリットとなります。 そこまで高速性を求めない場合にはとても使いやすいライブラリです。 しかし、Redis はデータキャッシュなどで利用することが多いでしょうから、用途と
ひとまず、解決。 ところで -r パラメータってなんですか? やり方はわかったのだけれども、パラメータの意味が分からないとキモチが悪いので、マニュアルで確認。 -r の解説を見てみると -r <code> Run PHP <code> without using script tags <?..?> ふむふむ、スクリプトタグ無しで、コマンドラインからコードが実行できると。 -r --run このオプションにより、コマンドラインのみで PHP の実行ができるようになります。 PHP の開始および終了タグ (<?php および ?>) は不要で、これらを付けると パーサエラーとなります。 なるほど、長い形式では --run ってことですね。イメージつきました。 -i (--info) があるではないですか ググったときに、最初の方で見つけたのが -r パラメータだったので、その時は -r で解
Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su
Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su
PHPのメモリ不足“Fatal error: Allowed memory size of …”、memory_limit を増量しても効かない 2018年11月14日 たかた WordPress や Movable Type のようなCMS、Web予約やイベントWeb申込等のWebシステムを運用していると、突然まっ白な画面になって、びっくりした経験はないでしょうか。 まっ白な画面になる原因はいくつもありますが、今回はエラーメッセージが「Fatal error: Allowed memory size of …」と表示されていたので、取り扱いデータがメモリの制限値をオーバーしたのだなと分かりました。そこで、応急処置としてメモリ制限値を変更(増量)すれば解決するものと思っていたのですが、エラーが解消されなかったのです。 今回は、なぜエラーが解決できなかったのか、その顛末をご紹介致します。 エ
初めまして、PHPエンジニアの伊藤です。 AWSで別VPC上にあるEC2インスタンス間の接続をする際に auth認証等独自の認証を利用せず フロント側のように Cognitoを経由して接続することで認証を簡略化できないかと思い 試してみたのでその紹介をしようと思います。 前提 ・今回はサーバ間の接続のためフロント側については考えない(ログイン画面等) ・サーバ間はAPIを通してやりとりする ・事前準備としてログイン用のユーザープールとログインユーザーの登録は済ませておく だいぶ雑ですが簡略化するとこんなイメージ イメージ図 では早速実装していきたいと思います。 PHP側 まずはadminInitiateAuthのAPIを利用して ログインしてアクセストークンを取得します。 protected function access_token() { $client = new CognitoId
PHPの日付計算って結構厄介な思い出ありませんか? PHP5.2からDateTimeクラスが登場し幾分マシになりましたが、それでもまだまだなところがあります。 そんな厄介なこともCarbonを使えば解決するかもしれません! Carbonとは A simple PHP API extension for DateTime. CarbonとはPHPのDateTimeクラスをオーバーラップした日付操作ライブラリです。 流行ってるの? Githubでは4300を超える☆を獲得していますし、「Laravel」などの人気フレームワークに組み込まれています。 では使い方を見ていきましょう。 インストール Composerを使ってインストールします。 Composerをインストールしていない方は、こちらからお使いの環境に合わせてインストールしましょう。 <?php require 'vendor/auto
PHPからRedisを操作するためのPhpRedisとPredis、両方を試してみます。 環境 Windows 10 (64bit) XAMPP 7.1.4 (PHP 7.1.4) PHPのアーキテクチャ: 32bit Redisをインストール まずは元となるRedisをインストールします。 RedisをWindowsにインストール - Qiita 特に設定をいじらなければ、ホスト: 127.0.0.1、ポート: 6379となるはずです。 また、インストールが終わったらすでに起動しています。 間違ってRedisをシャットダウンしてしまった場合は、redis-server --service-startとコマンドを打つよりもWindowsのサービスでRedisを起動する方が余計なウィンドウを減らせていいと思います。 GUIツールをインストール https://redisdesktop.com
PHPではオーバーロードはサポートされていません。(オーバーロードとは、引数ちがいの同名関数を複数個定義することです) ただ、1つの関数において色々と工夫することで、オーバーロード的なことは実現できます。2つの方法があります。 1)引数の数で分岐 関数に渡された引数の情報を知るための関数が色々用意されています。 func_num_args( ) ⇒ 引数の数を取得 func_get_arg(n) ⇒ n番目の引数の値を取得 func_get_args( ) ⇒ 引数の一覧を配列として取得 これらを駆使する事で、1つの関数に対して、色々な呼び出し方が可能になります。(ソースを精査しなくても済むよう、引数についてのコメント文はしっかり書いときましょう) ※ 注意点 ※ PHP 5.2 以前では、func_get_arg(n)を他の関数への引数として直接渡すことはできません。(エラーとなる) P
こんにちは。でんすけ(@notgeek_densuke)です。 最近、Google for jobsが日本でも対応される雰囲気が出てきて、やきもきしていたりする私です。 で、Google for jobsなんかで使うJsonデータを、PHPで作るときのエスケープの話。 PHPでJsonデータの作成 PHPでJsonデータを作ろうとすると、こんな感じ。 $jsondata_arr = []; $jsondata_arr['@context'] = "http://schema.org/"; $jsondata_arr['@type'] = "JobPosting"; // 仕事内容 $jsondata_arr['description'] = "この文字はユニコードです"; return json_encode($data,JSON_PRETTY_PRINT); 配列でデータを作って、 js
Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su
プログラムを学んでいると、色々な耳にしない単語を聞くことも多いです。 シリアライズもその一つ。 今回は、PHPのシリアライズについて以下の内容でお話します。 【基本】シリアライズについて 【実践】シリアライズを行う 【実践】アンシリアライズを行う わかりやすく解説しますので是非ご覧になってください。 シリアライズとは シリアライズとは、配列などをそのまま配列として保存しておきたい場合などに使用します。 また、保存だけではなく送受信にも使えます。 通常、配列をデータベースに保存するとどうなるでしょうか。 試しにデータベースに以下の配列を登録してみてください。 ["samurai1", "samurai2", "samurai3"] [su_spacer size=”20″] そして、再度取得してみます。 結果 'Array("samurai1", "samurai2", "samurai3"
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く