揮発性のメモ2

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

PHP

PHPで、プロパティを全部見る

PHP

private と protected

PHP

今日はprivateとprotectedを間違えて大変だった name() ."\n"); } } class B extends A { private function name(){ return "Bです"; } } $a = new A(); $a->printname(); // Aです $b = new B(); $b->printname(); // Aです ※Bのつもりだった pr…

PHP8.1で "Deprecated: ucfirst(): Passing null to parameter #1 ($string) of type string is deprecated in"

PHP

PHP8.1で既存のプログラムを動かすと、Deprecated(非推奨)のエラーがやたら出る。

PHPで、設定ファイルがうまく読まれてないことを知る

PHP

PHPで設定ファイルを分けて書いているとき、設定ファイルがちゃんと読まれているかどうか確認する。 設定ファイルは文法エラーがあると、そこでそのファイルの読込みを終了して次のファイルに移る。 よって、エラー行以降は反映されないので中途半端に設定さ…

strtotime()はYYYYMMDDhhmmssを理解する

PHP

PHPのstrtotime()は日付っぽい文字列を入れるとUNIXTIMEにしてくれる便利な関数 PHP: strtotime - Manual理解してくれる書式はここにまとまっている www.php.net 書いてないけど YYYYMMDDhhmmss な形式の文字列もセーフ

PHPで、POSIX関数がエラーになるとき

PHP

CentOS7, PHP5.4 PHPで、POSIX関数がエラーになるとき、posix関数が入ってないのでインストールする $ sudo yum install php-process

PHPのシステム関数で、hexdumpの出力結果同士のdiffをとる

PHP

コマンドの出力結果同士の差分は、bashで プロセス置換 というワザを使う。 diff <(hexdump -C /tmp/a.bin) <(hexdump -C /tmp/b.bin) bash でコマンドの実行結果をファイルとして扱う - Diary bashのプロセス置換で遊んでみよう! | Raccoon Tech Blog [株…

array_splice() を使うと添字が振り直される

PHP

注意: array の配列の数値添字は保存されないことに注意しましょう。 PHP: array_splice - Manual 配列が変化しようとしまいと関係なく、とにかく array_splice() を通すだけで添字は振り直される 1, 2=>2, 4=>3]; print_r($a); array_splice($a, 10); print…

json_encode()で、private変数は出力されない

PHP

変換される値がオブジェクトの場合、 デフォルトでは public としてアクセス可能なプロパティのみが含まれます。 PHP: json_encode - Manual #!/usr/bin/php -q

PHP5.6でZipArchiveを使うと日本語ファイル名が化ける問題

Windowsで作ったZIPファイルはファイル名がSJISであり、これをLinuxのPHPでファイル名をUTF-8にして解凍したい。 という話 blog.narazaki.info PHPでZipArchiveを使うと、statIndex() が勝手に憶測で文字コード変換をするために文字コードが破壊されてしまう…

静的メンバ変数に、変数名の文字列でアクセスする

PHP

動的メンバ変数に 変数名の文字列でアクセスするには、$chinko->$name とかみたいに 適当に矢印の先に変数を指定すればその変数に入ってる文字列を変数名と見なしてくれる。 hoge ."\n"; // 普通に hogeにアクセスできる $name = "hoge"; print $chinko->$na…

PHPで、配列の最後尾の値を取得する

PHP

array_pop() や end() を使うと配列の最後尾の値を取得できる。 ただし、関数の戻り値を使うことは許されないらしい。どちらも配列を参照して配列自体をいじるため、実体が必要だから https://www.php.net/manual/ja/function.end.php https://www.php.net/m…

xamppのアンインストール

インストール先フォルダにある unsintall.exe を実行でアンインストールされる。ただファイル消すだけなのになんでそんなに時間かかるの? バグった? って思うほど時間かかるので注意する インストールは C:\ にする。 C:\xampp\php\php.exe

PHPで、クッキーにSameSite属性を付ける

PHP

7.3以降で追加されたSameSite属性の設定手段いろいろ php.ini に書く ; Add SameSite attribute to cookie to help mitigate Cross-Site Request Forgery (CSRF/XSRF) ; Current valid values are "Strict", "Lax" or "None". When using "None", ; make sur…

PHPで、ZipArchiveクラスを使えるようにする

容量を減らすためにインストールパッケージをケチっていると、思いもよらない不具合がターゲット機のみで起こる。ZipArchiveを使っているマシンでエラー発生。 ZipArchiveが使えない。 マジかよ $ php -r '$zip = new ZipArchive();' PHP Fatal error: Uncau…

PHPで、foreachでぐるぐる回ってる最中に要素を削除する

PHP

一般的に禁忌というか面倒な 配列をループ中の要素削除 もPHPなら安全 $a) if($a=="dog") unset($list[$k]); print_r($list); print("count = ". count($list) ."\n"); foreachで回って、要素が "dog" だったら削除する Array ( [0] => a [1] => b […

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

PhpStormを 2022.1 にバージョンアップしたらタイトルバーがバグったので、直す。 カスタムプロパティの修正 ウィンドウタイトルとメニューが一体化してしまったのは 2019.2 の頃で、この時期はレジストリやカスタムプロパティを修正していた。 レジストリは…

PHPから、UDPでsyslogを投げる

#!/usr/bin/php -q

PHPでエンコードして、JavaScriptでデコードする

漢字とか改行とか記号とか、そういうのをPHPからJavaScriptに渡すときにエンコードしたいとき PHP側で rawurlencode(), JavaScript側でdecodeURIComponent() を使用する。

PHPで、ディレクトリを作成する

PHP

ディレクトリがあろうがなかろうが関係なくディレクトリを作る。 mkdir -p hoge みたいなやつ。

オブジェクトの要素に変数名でアクセスする

文字列を変数名とみなして変数にアクセスするやつ JavaScriptのとき developer.mozilla.org 連想配列扱いできる var a = {b:123}; var text = "b"; console.log( a.b ); console.log( a[text] ); PHPのとき www.php.net 可変変数という仕様でアクセスできる …

if文、for文

if文for文の後ろは単文のみ許可、長くなる時は{ }でくくる というマイルール { は絶対次の行にしない。(関数宣言のときは逆に { を必ず次の行にする) 許さない書き方 /* 見つけ次第直す */ if(a>0) hoge(); for(i=0; i<10; i++) hoge(); /* 書いたやつを地…

MXレコードを取得する

PHP

$ php -r '$result=getmxrr("icloud.com",$list); var_dump($result); var_dump($list);' bool(true) array(2) { [0]=> string(20) "mx02.mail.icloud.com" [1]=> string(20) "mx01.mail.icloud.com" } www.php.net 注意:この関数をメールアドレスの確認の目…

ftp_getで、ファイルの取得ができないとき

PHP

FuelPHPは

PHP

個人的にはまだもう少しだけ頑張れると思う

PhpStormで、CTRLキーを押しながらファイルの複数選択ができなくなったとき

stackoverflow.com This problem can be fixed by turning off "Open files with single click" in the Project tab > Gear icon. It might be a bug; not sure. https://youtrack.jetbrains.com/issue/WI-52883そういうことかよ・・・ SHIFTキーを押しなが…

phpで、自前の関数定義を呼んでちょっとした実験をする

PHP

-rオプションでincludeを使う という話 php -r 'include("hoge.php"); functest(1,"abc");' なんかオプションでファイルが読めたような気もするけど PHPじゃなかった気もする

phpで、pcntlがサポートされてるか調べる

PHP

phpで、pcntlがサポートされてるかなんとなく調べる $ php -r "phpinfo();" | grep pcntl pcntl pcntl support => enabled 何がどこまで有効化無効化されてるかをなんとなく調べるなら $ php -r "phpinfo();" | grep abled

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+ / キーを押してメンテナンス…