php
2024年8月1日時点でのPHPの各バージョンのサポート期間について確認しました。 なお、PHP公式のサポート期間が終了している場合でもOSディストリビューション毎にバックポートは適用されている事がありますので、そちらも併せて確認されることをお勧めします…
PHPでファイル一覧は下記の方法で取得できます。 改めて調べてみると色々な方法がありますね。 opendir, readdir scandir DirectoryIterator glob opendir, readdir opendir でディレクトリハンドルを取得し、readdir でディレクトリ内のディレクトリとファ…
今回はPHPで配列を結合する方法をまとめました。 目次 配列を結合する方法 array_merge を使う array_merge_recursive を使う + 演算子を使う 配列のアンパックを使う まとめ 配列を結合する方法 PHPでは下記の方法で配列の結合ができます。 array_merge を…
最近PHPの言語仕様について改めて勉強しています。 今回はPHPのアロー関数についてまとめてみました。 目次 アロー関数とは アロー関数の記述方法 アロー関数の仕様 アロー関数の使いどころ アロー関数とは アロー関数は無名関数を簡潔に書ける文法です。 PH…
テキストに数行おきに改行を挿入する方法を調べた。 処理のイメージは次の通り。 入力テキスト あああああああああああ いいいいいいいいいいいいい うううううううううううう ええええええええええええ おおおおおおおおお かかかかかかかかか 出力テキスト…
composer を実行したら下記エラーが出た。 Problem 1 - hirak/prestissimo is locked to version 0.3.8 and an update of this package was not requested. - hirak/prestissimo 0.3.8 requires composer-plugin-api ^1.0.0 -> found composer-plugin-api[2.…
Laravel5.6以降は Str::uuid() でuuid(v4)を生成する事ができる。 use Illuminate\Support\Str; $uuid = (string) Str::uuid(); 独自に実装する必要もなく、別途ライブラリをインストール必要もないので楽ちん。 Laravel公式ドキュメント https://laravel.co…
PHP5.6以降は、func_num_args(), func_get_arg(), func_get_args()を使わずに可変長引数を実現できる。 そのことに最近気づいた・・・・ 当然、余計な関数を使わないので実装がスッキリする。 例 int(1) [1]=> int(2) [2]=> int(3) [3]=> int(4) [4]=> int(…
composerを実行する際、メモリ不足で落ちる事がある。 使用するライブラリーが多いと発生するような気もするが詳しい原因は不明。実行事にメモリに保持されるデータのサイズが大きくなり、デフォルトのmemory_limitの設定を大幅に超過してしまうようだ。 mem…
preg_grepは配列の要素を絞り込むのに便利な関数だ! なんで今までこんな便利な関数を知らなかったろう・・・ preg_grep ( string $pattern , array $array , int $flags = 0 ) : array|false $pattern 正規表現のパターンを指定 $array 検索対象の配列 $fla…
最近、preg_grepという便利な関数を知ったのでメモ。 YYYY/MM/DD hh:mm:ss_任意の文字 の形式に合致する要素だけ抽出する例は下記の通り。 $array = [ '2020/10/12_aaaa', '299925_bbb', '2021/04/21_bbbb', '2021/08/21_bbbb', '2021/02/21_bbbb', '2021-02…
DOMXPathでnodeValueに&を含む文字列を代入しようとしたら警告が出た。 PHP Warning: main(): unterminated entity reference 実行結果を見てみると、代入はできておらず、代入する前の元の文字列も抜け落ちていた。 string(35) "<div> <p id="text"></p> </div> " 検証に使用したソース…
trim関数に限らず、declare(strict_types=1) を指定すると、標準関数の引数の型も厳密に指定する必要がある。 今までのような感覚でなんとなくで引数を指定すると、想定外のところでエラーが発生するから、使い慣れている関数でもリファレンスで引数の型を確…
Laravel6.0以降、ロギングに関して下記設定がデフォルトに設定されていました。 "laravel.log" にのみ書き込まれる dailyではないので、全ての年月のログが同一ファイルに書き込まれる ログ保持期間が14日 ログ保持期間が短いことと、単一ファイルに延々書き…
Laravelを使用していて、一時的にbladeテンプレートの参照ディレクトリを変更したい事があったので、その方法について調べた。 Laravel5〜6にて確認。それ以前のLarvelではやり方が異なる可能性があるので注意。 コントローラーの実装例 public function ind…
正規表現の実行結果を、リアルタイムに確認する事ができるサイト。 正規表現のパターンを作成する時に便利。 regex101.com
ライブラリの依存関係でかなりひっかかります。 特定のバージョンのphp(特に古いやつ)をインストールする場合に、コンパイルに必要なライブラリのバージョンが対応していないというエラーがめちゃくちゃ出ます。 それなら、とそのライブラリの特定のバージ…
テンプレートシートをもとに、複数のシートを生成する処理を実装しようとしましたが実装できませんでした・・・・ 詳細は省略しますが、おおまかな処理の流れは次の通りです。 Excelブックのオブジェクトを生成する テンプレートのExcelを読み込む ループ処…
phpでcurl関数の実行する場合、デフォルトではレスポンスが直接出力されてしまう。 下記はPHP公式サイト記載のcurlのオプションの説明 CURLOPT_RETURNTRANSFER TRUE を設定すると、curl_exec() の返り値を 文字列で返します。 通常はデータを直接出力します…
serialize関数で、PHPの値を変換する場合は、テキストデータではなく、バイナリーとして取り扱う事。 普通のテキストデータとして取り扱ってしまうと、 データが壊れてしまって元の値を復元できなくなる!! これは怖いぞ・・・ 下記はPHP公式のドキュメント…
glob関数でディレクトリリストだけ抽出する場合は、第二引数に GLOB_ONLYDIR を指定する。 例 foreach (glob('/path/to/target/*', GLOB_ONLYDIR) as $d) { echo $d, "\n"; } glob関数のドキュメントはこちら。 www.php.net
macのterminalでPHPを実行しようとしたら、下記のエラーが発生しました。 dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicuio.64.dylib Referenced from: /usr/local/bin/php Reason: image not found zsh: abort php ぐぐってみたところ、brewで…
substrは文字の一部分を返す関数です。 バイト単位で検索するため、マルチバイト文字には使えませんが、 工夫すると色々と使い所のある関数です。 目次 1-1. 指定した文字列の7文字目から末尾までの文字を取得する 1-2. 指定した文字列の2文字目から4byte分…
Date関数の日付文字列の書式 改めて日付文字列の情報を読んでいるのだけど、1年の経過日数まで取得できることは知らなかった。 さておき、普段よく使うのは年/月/日 /時/分/秒あたりだと思う。 あとは地味に必要なのが月の日数。 文字 内容 例 d 0詰め2桁の…
2020-09-02更新 仕事の都合上、7未満の古いバージョンのPHPの環境を構築する必要があったのですが、yumでのインストールがスムーズにいかなかったので色々試行錯誤しました。 目次 remiのデメリット ius-archiveリポジトリがあるよ! ius-archiveでパッケー…
PhpSpreadSheetでシートが読み込めない! PhpSpreadSheetでExcelのファイルを読み込んで、あれこれ処理を行うプログラムを開発していたのだけど、何故かシートが読み込めないトラブルに遭遇した。 読み込めない原因は? Excelの内部のデータを確認したところ…
PHPで文字列を指定した文字数で分割したい時は str_split、mb_str_split を使うと文字列を分割することができます。 str_split はシングルバイトのみの文字列の処理に最適で、mb_str_split はマルチバイト文字を含む文字列の処理に適しています。 例えば、こ…
PHPの各バージョンのサポート期間について確認した。 ただ、PHP公式のサポート期間が終了している場合でもOSディストリビューション毎に、バックポートは適用されていると思われる。 したがって、PHPのサポート期間だけではなく、運用しているサーバのOSのサ…
はじめに phpspreadsheetは、PHPでExcelの読み書きを可能にしてくれるとても便利なライブラリ。最近仕事で使う機会が多い。 備忘もかねて基本的な操作についてまとめてみた。 新しいブックを新規作成 Excelのブックを新規作成するには、先ずスプレッドシート…
現在の環境情報は下記で取得できる。 App::environment(); これを使えば、本番環境と開発環境で処理を分けたい場合の判定に利用できる。