それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

php

sendmail コマンドを ssh 経由で呼び出せることに気づいた。

sendmail でメールを送ろうとして苦労してた。 webの問い合わせフォームだとか、php のsendmail をサーバでは使えるが、ローカルでは smart-relay な postfix を設定して試していた。 実にめんどくさいことだった。或る日、コマンドを眺めていて、ふと気づい…

全角の英数を半角の英数に統一する(ただし、記号は除外)

php

全角を半角にする。 php で日本語の英数字(A-Z)を半角にしたいときは、文字コードのコードポイントを用いた計算ができる。 英数字だけを半角にしたいとき。

php, mysqlで wordpress のテーブルへ pdo したときに文字化けする。

機種依存文字が化けます。 めっちゃ化けます。とくに、外字的な、ハシゴダカのような文字列を扱えません。PDOまじアレ。 PDOのマニュアルとか検索結果を見ても、ほとんど情報がないんですよね。困りました。 Windowsだと外字に登録するような文字列であって…

php xdebug の接続(localhost/phpstorm/php-builtin webserver)

IDE とphp-xdebug でブレークポイントを使いたい。 IDE で php-debug を使ってブレークポイントを設定し任意の場所で変数の内容をダンプしたい。 はじめに php の xdebug を使えば phpstorm や vscode などでブレークポイントを使うことができる。 接続形態 …

phpで'rm -rf'で再帰的に空じゃないフォルダを消す。

php

php で rm -rf をする方法を探してた PHPの組み込み機能をすごく上手につかった方法を発見したのでメモ。 isDir…

php で url から ホスト名を取り出す。 - parse_url

php

PHPでURLからホスト名だけを取り出す。 var_dump(parse_url( 'https://www.yahoo.co.jp:443/', PHP_URL_HOST )); string(15) "www.yahoo.co.jp" 見て分かる通り、指定したものをちゃんと簡単に取り出せます。 ほんとなんで十分に検証もしないままコピペの正…

php で DNS からレコードを調べてIPアドレスを取り出す - dns_get_record

php

ドメイン名のDNSレコードを調べてIPアドレスを取得する dns_get_record でDNSの値をクエリすることが出来ます。 var_dump(…

phpで文字列がメールアドレスかどうか調べる(RFC822) - filter_vars

php

phpで文字列がメールアドレスかどうか調べる。 var_dump(filter_var('takuya@example.com', FILTER_VALIDATE_EMAIL )); string(18) "takuya@example.com" php > var_dump(filter_var('takuya+sample@…

phpで 文字列がIPアドレスかどうか調べる- filter_vars

php

文字列がIPアドレスかどうか調べるには。 FILTER_VALIDATE_IP を filter_vars と組み合わせて使うとお手軽です。 var_dump(filter_var('a', FILTER_VALIDATE_IP)); bool(false) php > var_dump(filter_var…

phpでプロスセス実行するライブラリ書いた。

php でコマンドのプロセス実行したい。 シェルコマンドの呼び出しをどうしてもやる必要があって、ずっと proc_open について調べてたり、pakagist / pear などのライブラリを見てたんだけど、代表的なものをいくつか試した。しかしコレと思えるものや使い方…

php の proc_open の処理を callback で少し見通しよく

proc_open のコードがカオスになってる proc_open でプロセスを起動して実行できる。 でも、あれこれ手順が煩雑でわかりにくい。 コールバックを使って整理する こういうときは、関数の引数に関数を取れば整理されるはず。

php のコマンド実行のproc_open でexitcode を取得する

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関数でコマンドのstdin/stdout/パイプを使う例を確認しました。

php でプロセス(プログラム実行) proc_openでプログラム実行 exec同等 コマンドからの出力 標準出力・エラーを捨てる 省略可能 標準出力を指定のファイルに 出力結果を一時ファイルに出す。 php://temp を使う場合の注意点 標準エラー出力を別のファイルに …

phpで改行が反映されない件(終了タグと改行コードの関係)

php

php で改行コードが反映されないことがあります。 LFでもCRLFでも関係なく、文字コードも関係ありません。php では終了タグで「改行」すると、出力には改行が反映されません。 著者: 書題: 実行結果 $ php sample.php 著者:コーチングのプロが教える 「ほめ…

laravel のmodel を 外部から使う

php

laravel の Eloquent のモデルを別のプロジェクトからぱぱっと使う。 Consoleとかあるし、API作れば実現はできる。でも既存のものと組み合わせるときは、DBを直接書き換えたほうが早い時がある。 本当はプロジェクトの外部から直接触るのは良くないと思うし…

laravel のマイグレーションで特定のmigration のファイル名指定して、一つだけ再度・何度も実行したい

laravel でmigrate するとき、特定のファイルだけを実行したい migrate refresh とかだと全部のテーブルが再生成されちゃうので、別のテーブルデータを消さずに特定のテーブルだけを再構築したい。 サンプル 指定したマイグレーションのファイルだけを実行す…

phpでOSの判定をする組み込み変数

php

php で実行環境をチェックするには PHP_OS という、ウルトラ素晴らしい定数が、最初から組み込まれています。

if 文には必ずブロックをつけろと言われることが多いけど、使い方によってはむしろ邪魔

if にブロックがないと叱られたことが昔から多い。 if のブロックって上手に書けばいいと思うし、設定やLintで矯正されたりするんだけどさ。 この if の書き方を見ほしい function setupAce(e, set){ //デフォルト設定(カスタマイズしたい場合はの引数(set)…

laravel の api ルートを叩いてもloginページやHTMLが帰ってきてjson以外になってしまう場合

TL;DR HTTPリクエストのヘッダに、 Accept: text/json が抜けている可能性が高い。 Laravelのレスポンスが login になる場合。 api で auth を入れているところへリクエスト投げつける。 HTMLのログインが帰ってくる。 実例 curl -H 'Content-Type: applicat…

composer でgithub / gitlab などのgit レポジトリをコマンドから指定してインストール

php/composer でコマンドから git レポジトリをインストールしたい。 composer で git のレポジトリ(非公式 package / 自作pkg )を指定して追加して使いたい。 通常は composer.json を編集するのだろうけど、 jsonの手作業の編集は、苦痛。 なので、コマ…

PHP Fatal error: Uncaught ErrorException: preg_replace(): JIT compilation failed: になる。

php

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-cliでプロジェクト単位(ディレクトリ単位)の設定を.user.iniで読み込ませる。

php

php でプロジェクト単位の設定を使いたい php には、ディレクトリ単位で php の設定を変更する user.ini という特殊なファイルを使うことができる。 イメージとしては .htaccess のようなものでディレクトリに設置することでディレクトリ単位でphpの挙動を変…

uwsgi で php を動かす - phpの複数バージョン起動のためにuwsgi-plugin-php をインストールして使う

php

uwsgi にphp プラグインがあります。 uwsgi とはPythonのイメージですが、php-fpm の代わりに使えます。(多分使うことは殆ど無いだろうけど) uwsgi で管理するメリット docker のイメージを作るときに php-fpmが混ざると共通化されないけど、uwsgi だとあ…

php composer intall で github rate Limitと言われたときの対処方法

php

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 の上限に掛…

php で JSONのエラーチェックをする,json_last_error

php

JSON が正しい形式かどうかチェックする APIで受け取ったときに、リクエストパラメータの代わりに JSONを受け取るので、JSONの型式をチェックしないといけない。 こういうときに json_last_error() を使えばエラー内容がある程度は見れるようになっている。 …

brew で php のインストール(homebrew/php/喪失以降)とモジュール(xdebug)のインストール

phpを brew で入れようとしたら、エラー Homebrew/php (deprecated) です。 世の中の brew install で書かれた意識高いPHP'erのゴミ記事が役に立たなくなりました。 どうするのか? php はtapから本家に戻りました。なので、以下の通りで十分です。 brew ins…

phpで指定した日付の範囲を作り月末にも対応させる

php

php の日付範囲を求めるにはDatePeriodを使うと便利 DatePeriod にスタートと、終了、そして間隔を追加すると日付範囲のオブジェクトが出来る。 = 5.3.0, PHP 7) DatePeriod implements Traversable { DatePeriodは Traversable なので、foreach などに入る…

LaravelのPHPStorm/IntelliJ IDEA でphpのデバッグ(xdebug)をビルトインサーバーで行う

php

# LaravelのPHPStorm/IntelliJ IDEA でphpのデバッグ(xdebug)をビルトインサーバーで行う laravel をxdebug でデバッグする、やり方はいっぱいある。 いっぱいあるのに、ネットに情報が殆どないので。さすがphper といったところか Xdebugデバッグをする。 a…

laravel で phpunitのテスト実行時に、PhpStormからXdebugを有効にする。user.iniを有効にして実行

xdebug を有効にしてphpunitを実行したい。 Xdebug の設定をしたとしても、phpunit の設定だとか、xdebugや日付などの php.iniを作るのが不便。 プロジェクトを切り替える毎に、php.iniを見直すのは割と面倒くさい。 phpには user.iniがある php には実行時…

php7で拡張機能のAPIが変わって動かなくなってる pamをなんとかした

php

php 7 で pamモジュールが動かなかった。 install してもPHPのPAMが動かなかったんですね。 PHPのC言語APIが変わってた コンパイルエラーなので、調べていくと型宣言辺で落ちてた。 調べていくと、拡張機能のAPIが更新されてたことがわかったなど この方法で…