揮発性のメモ2

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

PHP

ブラウザで見ているPHPプログラムをデバッグする。

PHP

Debian 9.5 stretch apache 2.4.25 PHP 7.0 XDEBUG 2.5 サーバ側準備 XDEBUGモジュールをインストール apt install php-xdebug XDEBUG設定ファイルを編集 ; /etc/php/7.0/mods-available/xdebug.ini ; モジュールロード指定 zend_extension=xdebug.so ; リモ…

flock()

PHP

flock() - 揮発性のメモ LOCK_NBを使うときはflock()の戻り値は常にtrueになるので$wouldblock見るしかない ・・・と思ってたけど、なんか今改めてテストしたら 普通にロック中ならfalseが返ってくる。 当時のテストが間違ってたのか環境の問題か実装が変わ…

XAMPPのPHPを実行

>c:\xampp\php\php.exe -v PHP 5.6.36 (cli) (built: Apr 25 2018 16:45:32) Copyright (c) 1997-2016 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies>php.exe -r "echo 'hoge';" hoge >php.exe -r 'echo "hoge";' PHP Parse…

オブジェクトの変数を全部再帰的に表示

PHP

数値をBCD形式のバイト列に変換する

PHP

PHPのstrlenは \0 も1バイトとして数えてくれる

PHP

PHP: strlen - Manual やったぜ

PhpStormで、拡張子のないファイルに間違ったファイルタイプをつけてしまったときの対処

拡張子のないファイルに間違って違うファイルタイプをつけてしまったとき(たとえばperlなのにPHPに紐付けてしまったとか)、 PhpStormはその紐付け情報を プロジェクトをまたいで永久に記憶してしまうので、それを削除する方法 メニューの File⇒Settings か…

PHPでテンポラリファイルを作成する

PHP

PHPでテンポラリファイルを作るには tmpfile() を使用します。

printデバッグでオブジェクトを見る

PHP

num = 1; $a->str = "1"; print var_export($a) ."\n"; var_dump($a); print_r($a); print json_encode($a, JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT) ."\n"; var_export へーこうやって定義できるんだー って感じ stdClass::__set_state(array( 'num' => …

UPLOAD_ERR_NO_TMP_DIR

PHP

tar.gzファイルをアップロードし展開するPHPを書いてテストをしたら、2回目のアップロードから必ずこのエラーになるようになった。 テスト用に tmp/hoge.txt を用意して実験してたのが原因だった。/tmp のパーミッションがtarの展開で破壊されたため PHPから…

phpのexitは引数が文字列だとスクリプトの戻り値が0になる

PHP

PHP: exit - Manual

配列をマージする

PHP

"A", "PIYO"=>"B", "C", 4=>"D" ); $b = array( "E", "PIYO"=>"TEST", "FUGA"=>"F", 2=>"G", 4=>"H" ); print("array_merge\n"); $c = array_merge( $a, $b ); foreach( $c as $k=>$v ) print("$k => $v\n"); print("\n足し算\n"); $d = $a + $b; foreach( $…

文字列 "90000000" を 0x90000000 と認識させる

PHP

32bit環境だとintval系はうまく変換できないので、0を足して暗黙の型変換をするか hexdec()という関数を使う ダメなパターン

mysqli_fetch_object と mysql_fetch_object の違い

PHP

結果がないとき NULLだったりFALSEだったりする mysqli_fetch_object もし結果セットにもう行がない場合には NULL を返します。 http://php.net/manual/ja/mysqli-result.fetch-object.php mysql_fetch_object もう行が残っていない場合は、FALSE を返します…

phpmyadminがエラーになる

PHP

phpMyAdmin phpMyAdmin 4.0.10.19 クッキーが使えないとエラーになる

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