揮発性のメモ2

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

PHP

PhpStormで、ウィンドウのタイトルとメニューが一体化してしまったのを直す 2

iww.hateblo.jp 以前の方法では直せなくなっていた(設定項目そのものが消滅した)ので、直す。 https://youtrack.jetbrains.com/issue/IDEA-219212 Help → Edit Custom Properties... を選択する idea.properties というファイルを作るかと聞かれるのでハイ…

PhpStormで、ウィンドウのタイトルとメニューが一体化してしまったのを直す

PHP

PhpStorm2019.2から、こんな感じでウィンドウのタイトルバーにメニューが入り込む仕様になってしまった。 これを回避する方法がコミュニティで書かれていた https://youtrack.jetbrains.com/issue/IDEA-219212 1.Ctrl+Shift+Alt+ / キーを押してメンテナンス…

unpackは想像以上にメモリをたくさん消費する

PHP

PHPで500KB程度のバイナリファイルを1バイトずつ処理したかったので

feofでループするとバグる

C PHP

feof() は終端まで到達していたらEOFを返すけど、終端かどうかは最後の文字の次の文字を読むまでわからない。 よって、while(!feof() みたいにループで1文字ずつ読むと、必ず最後にゴミがでる。今までファイルを1文字ずつ読んだことなんかなかったので、初め…

小数点以下の桁数を指定して表示する

123456 を 123456.00 みたいに小数点以下の桁数を指定して表示する var a = 123456; var n = 2; console.log( a.toFixed(n) ); // 123456.00 Number.prototype.toFixed() - JavaScript | MDN

PHPで、配列を定義してすぐ使う

PHP

PHPで、手っ取り早くオブジェクトを生成する

PHP

ちょっとした一時的な使い捨てオブジェクトを作りたいとき、いちいちnewするのが面倒くさい。 hoge = "Hello"; $o->piyo = "world"; $o->fuga = 2019; $list[] = $o; みたいなコードだと何行もなってちょっとウザいのが、裏技を使うと1行になる "Hello", "pi…

json_last_error()

PHP

errnoみたいに、「最後のエラー」がずっと残るものだと思っていたけど 成功したときはきちんとゼロに戻されてた

uptime取得

PHP

配列同士の比較

PHP

PHP: 配列演算子 - Manual

ブラウザで見ている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 …