揮発性のメモ2

http://d.hatena.ne.jp/iww/

PHP

isset($a)はNULLのときも偽になる

PHP

変数がセットされていること、そして NULL でないことを検査する PHP: isset - Manual

conf.d/*.ini の各設定ファイルが読まれているか確認する

PHP

どの設定ファイルを読んでいるかは php -i か phpinfo() で確認できる Configuration File (php.ini) Path => /etc/php5/cli Loaded Configuration File => /etc/php5/cli/php.ini Scan this dir for additional .ini files => /etc/php5/cli/conf.d Additio…

PhpStormで、switch文にbreakを書かなかったときの警告を無視させる

わざとbreak;を書かない仕様のときに、警告を出させたくない。

PhpStormで、include文に絶対パスが使えない

開発機上のディレクトリ構成とターゲットでの構成が違うので、当然食い違いが発生する。 warningなので無視してもいいが、間違っていないのに黄色いランプが付くのもくやしいので、このwarningは無視する。 Setting→Editor→Inspections ⇒ PHP→General→Unreso…

/usr/lib64/php/modules/module.so: cannot open shared object file

PHP

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/module.so' - /usr/lib64/php/modules/module.so: cannot open shared object file: No such file or directory in Unknown on line 0/usr/lib64/php/modules/module.so …

list で存在しない変数はnullになる

PHP

date() で変なエラーが出るとき

PHP

Fatal error: date(): Timezone database is corrupt - this should *never* happen! in /opt/hoge/test.php on line 2 wordpress - PHP Timezone database is corrupt error - Stack Overflow SNS構築(OpenPNE) - Fedoraで自宅サーバー構築 キュン/Imamura(…

PhpStormで、BSキーで空白だけの行のインデントを下げようとすると 行ごと消されてしまう不具合を解消する方法

Fileメニューの Setting から Editor⇒General⇒Smart Keys に進み Backspace の Unindent: を Disabled にする。 Phpstormでインデントを消すと行が消える | ウェブゴト なぜか Default Settings にはこの項目が無いので、プロジェクトごとに設定が必要で め…

falseを配列にキャストする

PHP

falseを配列にキャストすると、falseが配列になる。 bool(false) } array(1) { [0]=> bool(false) }

content-type: application/json

PHP

JSONファイルのときは、きちんと content-type を指定した方が良い。 hello = "世界!"; header('content-type: application/json; charset=utf-8'); echo json_encode($o, JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT); json形式ということが明示されていれ…

sendmailコマンドが標準出力にエラーメッセージを出してしまうのをなんとかする

PHP

PHP*1のmail()は内部で sendmailコマンドを呼び出している。 sendmailコマンドが標準出力や標準エラー出力になにかゴミを出力すると、そのまま出てきてしまう。mail()の前に ob_start() を入れ 終わったら ob_end_clean() を呼ぶようにしても、出力を抑止す…

realpathコマンド

PHP

#!/usr/bin/php -q \n"); exit; } $path = $argv[1]; //print( "$path -> " ); print( realpath($path) ."\n" );

文字コードの変換

PHP

PHP: mb_convert_variables - Manual

μ秒をとる

PHP

PHP: microtime - Manual

可変長引数のコメントの書き方

PHP

これであっているかは不明 PHP5.6より前 phpDocumentorでドキュメントの自動生成 @param

FuelPHP の Session::rotate() はローテート前のセッションファイルを削除しない

PHP

FuelPHP の Session::rotate() はローテート前のセッションファイルを削除しない セッション変数をすべて削除し、rotated_session_id という変数だけを登録する $ test_unsession.php /tmp/testsid_866f1e60e6903ea7327e6ba42be61df2 Array ( [rotated_sessi…

FuelPHPでクッキーにHTTPOnly属性を指定する

PHP

APPPATH/config/session.php を編集する cookie_http_only を true に変更 null, 'cookie_http_only' => true, // ★HTTPOnly属性を設定する 確認方法 wiresharkなどで適当に確認する Set-Cookie: のどっかにhttponlyと書いてあれば成功 Set-Cookie: hogehog…

is_numeric() は前のスペースは無視するが、後ろのスペースは無視しない

PHP

PHP: is_numeric - Manual PHP: ctype_digit - Manual

FuelPHPでセッションがタイムアウトしたときに削除されるタイミング

PHP

fuelphp 1.7.2 $COREPATH/session/file.php config['gc_probability']) { if ($handle = opendir($this->config['path'])) { $expire = $this->time->get_timestamp() - $this->config['expiration_time']; while (($file = readdir($handle)) !== false) { …

FuelPHPのUriクラスが正しいUriを返さない

PHP

エイリアス機能なんかで、URLと実際のフォルダ名とが食い違っているとき Uri::main() などのメソッドが返すURLはおかしくなる http://localhost/hogehoge/piyo/fugaプロジェクトhogehogeとしてhogehogeディレクトリに置いてあるとき Uri::main() http://loca…

BOMありファイルを探す

PHP

頭から何バイトか読み出して、 先頭が0xEFだったら BOMあり CR+LFがあったら CR+LF #や と看做して引っ掛かったファイルの一覧を作成する #!/usr/bin/php -q

末尾に ?> がありそうなPHPファイル一覧

ケツ10行以内に ?> で始まっている行があれば、怪しいと判断する #!/bin/sh (tail $1 | grep -qe '^?>') && echo $1 find -name "*.php" | xargs -n1 hoge.sh

関数の引数の「変数名」を取得する

PHP

How to get a variable name as a string in PHP? - Stack Overflow バックトレースを使って、ソースを直接読んで、関数を呼び出している行の変数名を取得する という ちからわざ

配列でループしながら要素を削除する

PHP

$v ){ if($v=="hoge") unset($list[$k…

オブジェクトは参照渡し

PHP

ずっと実体渡しだと思いこんでた。 無駄な&がいっぱいあるわ・・・ a = "piyo"; } $A = new a; $A->a = "hoge"; print_r($A); b($A); print_r($A); a Object ( [a] => hoge ) a Object ( [a] => piyo )

多重起動防止にファイルロックを使う

PHP

ファイルロックをする際、ファイルロックを関数にするとロックが効かなくなるので注意する

変数内での文字列の置換

PHP

x}_${b}_${c[0]}_{$c[1]->x}"; print("$z\n"); // hoge_piyo_fuga_hoge 変数のパースについて PHP: 文字列 - Manual 基本的には、全体を{ }で囲うのが無難だけど、そのまま書いても認識される。変数に続けて 英数字や_、[]や-> がくるときは{ }でくくらない…

データ受信時の罠

PHP

unpack()の結果をlist()につっこむ

PHP

unpack()の戻り値の配列は 0始まりではないので、list()につっこめない。

配列の添え字の null

PHP

配列の添え字に null を使うと、空文字列になる。 で、空文字列と 0 とは別物。 foo [] => piyo [0] => bar ) Null は空文字列にキャストされます。つまり、キーに null を指定すると、実際には "" として格納されます。 PHP: …