2016/11/03 @ PHPカンファレンス2016 2016/12/15 @ PHPカンファレンス2016再演イベントにて改訂 2017/06/10 @ PHPカンファレンス福岡2017にて改訂 2017/06/10 @ PHPカンファレンス福岡2017講演録画 https://www.youtube.com/watch?v=54jHDHvcYAo
Grapheme 関数 目次grapheme_extract — デフォルトの書記素クラスタシーケンスをテキストバッファから取り出す関数。 テキストは UTF-8 でエンコードされている必要がありますgrapheme_stripos — 大文字小文字を区別せず、文字列内で最初にあらわれる場所の (書記素単位の) 位置を見つけるgrapheme_stristr — 大文字小文字を区別せず、haystack 文字列の中で needle が最初に登場した場所以降の部分文字列を返すgrapheme_strlen — 書記素単位で文字列の長さを取得するgrapheme_strpos — 文字列内で最初にあらわれる場所の (書記素単位の) 位置を見つけるgrapheme_strripos — 大文字小文字を区別せず、文字列内で最後にあらわれる場所の (書記素単位の) 位置を見つけるgrapheme_s
From various Internet posts and recent experience, I have observed that you cannot rely on proc_close returning the accurate return code of the child process. The return code also depends on wether or not you read from the stdout/stderr pipes, as my example shows. I work around this by writing the exit code to an additional file descriptor. <? $descriptorspec = array( 0 => array('pipe', 'r'), // s
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
こんな感じ↓で、json_encodeした配列をjson_decodeすると、配列に戻ってほしいのに、stdClass Objectで戻ってきてしまって、あれー、と思ってました。 ソース <?php $org_array = array( 'hogehoge', 'piyo' => 'piyopiyo', 'fruits' => array( 'apple', 'orange', 'mellon', ), 'city' => array( 'tokyo' => 'meguro', 'osaka' => 'kyobashi', 'hukuoka' => 'hakata', ), 'huga' => array( array('happy', 'bad', 'lucky'), array(100,200,400,800) ), 'game_history' => array( array('n
json_encode()でPHPの配列をJSONにする場合に、PHPの配列の内容によってJSONの配列(Array)になるかハッシュ(JSONの場合KEYが文字列のプロパティの集合)になるかを調べてみた。 PHPの連想配列(KEYあり)の場合 $arr = array('foo' => 'a', 'bar' => 'b', 'baz' => 'c'); echo json_encode($arr); // => {"foo":"a","bar":"b","baz":"c"} →JSONのハッシュになった。 PHPの配列(KEY指定なし=ゼロから始まる連番)の場合 $arr = array('a', 'b', 'c'); echo json_encode($arr); // => ["a","b","c"] →JSONの配列になった。 PHPの配列を、json_encode()のオプション
数年前であれば仕方なかったところですが、2018年の今となっては、パスワードハッシュの手動計算はもはや"悪"です。 まずログイン認証と称してmd5とかsha1とか書いてあるソースはゴミなので投げ捨てましょう。 hashやcryptは上記に比べればずっとマシですが、使い方によっては簡単に脆弱になりえます。 あと『パスワードを暗号化する』って表現してるところも見なくていいです。 PHPには、ハッシュに関わる諸々の落とし穴を一発で解消してくれるpassword_hashという超絶便利関数があるので、これを使います。 というか、これ以外を使ってはいけません。 以下はフレームワークを使わずに実装する際の例示です。 フレームワークを使っている場合は当然その流儀に従っておきましょう。 ハッシュの実装 データベース ユーザ情報を保存するテーブルを作成します。 パスワードカラムの文字数は、システム上のパスワ
PHP では @ を付けることでエラーを回避できるという便利な記述方法があり、ものぐさな私などは if (@$var["foo"]) $result = $var["foo"]; みたいなコードを書いてしまいます。 で、この処理が「遅い」という噂やツッコミを度々受けるので調べてみました。 「ほら、そんな気にするほどでも無いよ」という結果を期待していたのですが、、、なんじゃこりゃ。。。 劇遅じゃないですか、これ。 いやはや・・・ ちょっと列挙しますね。以下のようなコードを単純 for 文で 100万回実行したときの結果です。 error_reporting(0) で PHP4 if (@$a["hoge"]) $b = $a["hoge"]; ⇒ 約 2.4 秒 if ($a["hoge"]) $b = $a["hoge"]; ⇒ 約 1.3 秒 if (isset($a["hoge"]))
この間teratailで非常にぼやっとした質問をしたのに解答が来たので、それを無下にしないようにポエムっぽくなるだろうけどまとめておく。 ご指摘などどしどしお願いします。このまま勘違いしたまま生きてたらお婿に行けない。 質問したこと WebアプリとCGIの違いは何でしょうか(13759)|teratail つまるところ、僕の頭の中で色々なものの定義があやふやだった。 質問前の僕の頭の中 Webアプリ:最近のサーバークライアント型のWebサービス的なの CGI : サーバーサイドのスクリプトを動かすための仕組み そして(質問前の定義の)Webアプリは「CGIの集合体でサーバーサイドで処理して、それをHTMLで出力して更にCSSやJavascriptでかっこ良くしている」と思っていた。 質問後にまた調べての僕の認識 CGIはほぼオワコン 今は常にスクリプトが起動しているのが主流 ホットスタンバ
PHP のデバッグツールである Xdebug にはリモートデバッグという機能があります。 …というのは言うまでもなく、広く知られていると思います。 しかし、Xdebug の設定をなんとなくコピペで済ませたりしていないでしょうか? Xdebug のリモートデバッグ設定、理解していますか? 日本語のサイトを検索すると「 xdebug.remote_enable=1 にして、xdebug.remote_host を xxx にして…」と設定だけが淡々と書かれた情報が多いです。 しかし、設定項目について、それぞれの意味を理解していないとトラブル時の対処が難しくなります。 リモートデバッグとは何か? リモートデバッグ (Remote Debugging) とは、実行中の PHP とは別の場所にデバッグを制御するものが存在する 方式です。 よくある環境だと、次のように図示できます。 PHP 本体とは別
.NETをVisual Studioで書いていた人間がPhpStormデビューした時、無性に「あれ」がやりたくなりました。 ブレークポイント張ってポチポチ一行ずつ進めるデバッグです。ステップ実行です。 実際にやってみると手順も多くあちらこちら設定する必要があったのでまとめてみました! 環境 PhpStorm 2017.2 PHP 7.1.10 Laravel 5.5 ローカル macOS Sierra 10.12.6 リモートはHomestead Ubuntu 16.04.3 LTS nginx/1.13.3 ローカル環境を設定する PHPバージョンをリモートと合わせる macにもともと入っているPHPのバージョンが古かったので、念のためanyenvを使ってバージョンを合わせました。 Xdebugインストール homebrewでインストールしました。 brew install php71-
The LAMP software bundle (here additionally with Squid). A high performance and high-availability solution for a hostile environment LAMP(ランプ)とは、OSであるLinux、WebサーバであるApache HTTP Server、データベースであるMySQL、スクリプト言語であるPerl、PHP、Pythonを総称した頭文字から成る造語である。動的(ダイナミック)なウェブコンテンツを含むウェブサイトの構築に適した、オープンソースのソフトウェア群である。これらは、それぞれ独自に開発されたものである。 Linux Apache, Webサーバ MariaDB・MySQL P for PHP・Perl・Python この起源は、1998年にドイツのコンピュータ
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 Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Tokyo' for 'JST/9.0/no DST' instead in ~.php on line ~
flock() を使うと、(ほとんどの Unix、そして Windows さえ含む) 事実上すべてのプラットフォームで使用可能な、簡易な読み手/書き手モデルを実現できます。 ロックの解放は、fclose() が実行されるか、 stream がガベージコレクションされた段階で行われます。 PHP は、恣意的にファイルをロックする汎用の手段を提供します (これは、アクセスする全プログラムが同一のロックの方法を使用する必要があり、 そうでない場合は動作しないことを意味します)。 デフォルトでは、要求したロックが確保されるまでこの関数はブロックします。 以下で説明する LOCK_NB オプションでこの挙動を制御することができます。 パラメータ stream fopen() を使用して作成したファイルシステムポインタリソース。 operation operation は以下のいずれかとなります。 共
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く