php
全角を半角にする。 php で日本語の英数字(A-Z)を半角にしたいときは、文字コードのコードポイントを用いた計算ができる。 英数字だけを半角にしたいとき。
機種依存文字が化けます。 めっちゃ化けます。とくに、外字的な、ハシゴダカのような文字列を扱えません。PDOまじアレ。 PDOのマニュアルとか検索結果を見ても、ほとんど情報がないんですよね。困りました。 Windowsだと外字に登録するような文字列であって…
IDE とphp-xdebug でブレークポイントを使いたい。 IDE で php-debug を使ってブレークポイントを設定し任意の場所で変数の内容をダンプしたい。 はじめに php の xdebug を使えば phpstorm や vscode などでブレークポイントを使うことができる。 接続形態 …
php で rm -rf をする方法を探してた PHPの組み込み機能をすごく上手につかった方法を発見したのでメモ。 isDir…
PHPでURLからホスト名だけを取り出す。 var_dump(parse_url( 'https://www.yahoo.co.jp:443/', PHP_URL_HOST )); string(15) "www.yahoo.co.jp" 見て分かる通り、指定したものをちゃんと簡単に取り出せます。 ほんとなんで十分に検証もしないままコピペの正…
ドメイン名のDNSレコードを調べてIPアドレスを取得する dns_get_record でDNSの値をクエリすることが出来ます。 var_dump(…
phpで文字列がメールアドレスかどうか調べる。 var_dump(filter_var('takuya@example.com', FILTER_VALIDATE_EMAIL )); string(18) "takuya@example.com" php > var_dump(filter_var('takuya+sample@…
文字列がIPアドレスかどうか調べるには。 FILTER_VALIDATE_IP を filter_vars と組み合わせて使うとお手軽です。 var_dump(filter_var('a', FILTER_VALIDATE_IP)); bool(false) php > var_dump(filter_var…
php でコマンドのプロセス実行したい。 シェルコマンドの呼び出しをどうしてもやる必要があって、ずっと proc_open について調べてたり、pakagist / pear などのライブラリを見てたんだけど、代表的なものをいくつか試した。しかしコレと思えるものや使い方…
proc_open のコードがカオスになってる proc_open でプロセスを起動して実行できる。 でも、あれこれ手順が煩雑でわかりにくい。 コールバックを使って整理する こういうときは、関数の引数に関数を取れば整理されるはず。
proc_open でexitcode を取得すると -1 になる proc_open の関数で、exitcode を参照すると、常に -1 が固定で返ってくる件 proc_get_status($process)['exitcode']; // -1 proc_get_status($process)['exitcode']; // -1 array:8 [ "command" => "ssh" "pid…
php でプロセス(プログラム実行) proc_openでプログラム実行 exec同等 コマンドからの出力 標準出力・エラーを捨てる 省略可能 標準出力を指定のファイルに 出力結果を一時ファイルに出す。 php://temp を使う場合の注意点 標準エラー出力を別のファイルに …
php で改行コードが反映されないことがあります。 LFでもCRLFでも関係なく、文字コードも関係ありません。php では終了タグで「改行」すると、出力には改行が反映されません。 著者: 書題: 実行結果 $ php sample.php 著者:コーチングのプロが教える 「ほめ…
laravel の Eloquent のモデルを別のプロジェクトからぱぱっと使う。 Consoleとかあるし、API作れば実現はできる。でも既存のものと組み合わせるときは、DBを直接書き換えたほうが早い時がある。 本当はプロジェクトの外部から直接触るのは良くないと思うし…
laravel でmigrate するとき、特定のファイルだけを実行したい migrate refresh とかだと全部のテーブルが再生成されちゃうので、別のテーブルデータを消さずに特定のテーブルだけを再構築したい。 サンプル 指定したマイグレーションのファイルだけを実行す…
php で実行環境をチェックするには PHP_OS という、ウルトラ素晴らしい定数が、最初から組み込まれています。
if にブロックがないと叱られたことが昔から多い。 if のブロックって上手に書けばいいと思うし、設定やLintで矯正されたりするんだけどさ。 この if の書き方を見ほしい function setupAce(e, set){ //デフォルト設定(カスタマイズしたい場合はの引数(set)…
TL;DR HTTPリクエストのヘッダに、 Accept: text/json が抜けている可能性が高い。 Laravelのレスポンスが login になる場合。 api で auth を入れているところへリクエスト投げつける。 HTMLのログインが帰ってくる。 実例 curl -H 'Content-Type: applicat…
php/composer でコマンドから git レポジトリをインストールしたい。 composer で git のレポジトリ(非公式 package / 自作pkg )を指定して追加して使いたい。 通常は composer.json を編集するのだろうけど、 jsonの手作業の編集は、苦痛。 なので、コマ…
macOS でphp7.3 を homebrew で入れた場合に発生します。 ほんと、もうphpは。。。brew にちゃんとしたコンパイル設定を送ってよね。 PHP Fatal error: Uncaught ErrorException: preg_replace(): JIT compilation failed: no more memory in phar:///usr/lo…
php でプロジェクト単位の設定を使いたい php には、ディレクトリ単位で php の設定を変更する user.ini という特殊なファイルを使うことができる。 イメージとしては .htaccess のようなものでディレクトリに設置することでディレクトリ単位でphpの挙動を変…
uwsgi にphp プラグインがあります。 uwsgi とはPythonのイメージですが、php-fpm の代わりに使えます。(多分使うことは殆ど無いだろうけど) uwsgi で管理するメリット docker のイメージを作るときに php-fpmが混ざると共通化されないけど、uwsgi だとあ…
composer install ができなくて詰んだ composer instal しようとしたら次のエラーが Could not fetch ~, please create a GitHub OAuth token to go over the API rate limit GitHub OAuth token to go over the API rate limit のエラーはfetch の上限に掛…
JSON が正しい形式かどうかチェックする APIで受け取ったときに、リクエストパラメータの代わりに JSONを受け取るので、JSONの型式をチェックしないといけない。 こういうときに json_last_error() を使えばエラー内容がある程度は見れるようになっている。 …
phpを brew で入れようとしたら、エラー Homebrew/php (deprecated) です。 世の中の brew install で書かれた意識高いPHP'erのゴミ記事が役に立たなくなりました。 どうするのか? php はtapから本家に戻りました。なので、以下の通りで十分です。 brew ins…
php の日付範囲を求めるにはDatePeriodを使うと便利 DatePeriod にスタートと、終了、そして間隔を追加すると日付範囲のオブジェクトが出来る。 = 5.3.0, PHP 7) DatePeriod implements Traversable { DatePeriodは Traversable なので、foreach などに入る…
# LaravelのPHPStorm/IntelliJ IDEA でphpのデバッグ(xdebug)をビルトインサーバーで行う laravel をxdebug でデバッグする、やり方はいっぱいある。 いっぱいあるのに、ネットに情報が殆どないので。さすがphper といったところか Xdebugデバッグをする。 a…
xdebug を有効にしてphpunitを実行したい。 Xdebug の設定をしたとしても、phpunit の設定だとか、xdebugや日付などの php.iniを作るのが不便。 プロジェクトを切り替える毎に、php.iniを見直すのは割と面倒くさい。 phpには user.iniがある php には実行時…
php 7 で pamモジュールが動かなかった。 install してもPHPのPAMが動かなかったんですね。 PHPのC言語APIが変わってた コンパイルエラーなので、調べていくと型宣言辺で落ちてた。 調べていくと、拡張機能のAPIが更新されてたことがわかったなど この方法で…
認証面倒くさい。 LDAPで連携くんだり、PAMで認証したり、OAuthしたり、ユーザ認証をする方法は山ほどある。 でも、それぞれ一長一短があってそれらを解決するいい方法がほしいと思っていた。 WEBのユーザのログイン認証をSSHでやる ひょんなことから、sshpa…