PHP

PHP

配列の結合の速度を比較してみたら、まさかの結果だった

今更、というかバージョンによって結果は変わったりするのかもしれないけど、ふと思い立ってPHP 8.2.7において単純配列の結合をarray_push、array_merge、スプレッド構文のそれぞれの方法で速度比較してみました。
AWS

Laravelでbrefを使わないCustom Runtimeを作る

AWS LambdaでLaravelアプリケーションをコンテナイメージで動作させる例についての記事です。Webアプリケーションではなく、定期実行するバッチやSQSのキューメッセージを処理するのを目的としています。巷で人気のbrefイメージを使えば自前実装しないで済むのかもしれませんが、いろいろ環境を...
PHP

PHPによるCRC16-CCITTの実装

Redis Clusterのスロット番号を計算する必要があって作ったものです。Redisのドキュメントに掲載されているコードを参考にしました。
スポンサーリンク
CakePHP

実行前の生SQL文を取得する

プレースホルダを使ったSQLは実行後のクエリログを参照すれば実際に流したSQLの全文が取得できますが、実行前はそうもいきません。さて、こういう時どうするかと考えた結果です。CakePHP3.5 & MySQLで確認。
CakePHP

JSONレスポンスで日本語をエンコードをさせない

PHPのjson_encode()関数はデフォルトでマルチバイトUnicode文字を\uXXXXにエンコードします。$values = [ 'message' => 'わけがわからないよ',];echo json_encode($values); // {"message":"\u308f\u305...
PHP

次に来る◯時のタイムスタンプを取得するシンプルな方法

次に来る◯時(5時とか)のタイムスタンプが欲しい時ありますよね?色々方法はあると思いますが、なんだかんだで日をまたぐと煩雑になりがち。ということでstrtotime()を使ってシンプルに片付けたのでメモ。strtotime(sprintf($hour > date('G') ? '%d:00' : ...
PHP

キーを維持したまま配列をシャッフルするシンプルな方法

PHPのshuffle()ってホラ、あれですよね?キーを張り替えて混ぜてるから、キーが連番で振り直されちゃうっていう。やはりキーを維持したまま混ぜたい時もあるんで、ashuffle()とかは無いし、どうするよって思ってやってみたら1行で実現できたのでメモ。uasort($a, function() ...
PHP

CGIに渡すREQUEST_URIを書き換える

Nginxの設定において、実際にリクエストされたURLを書き換えて、CGIで使うサーバ変数のREQUEST_URIに渡したい時があったのでメモ。
PHP

strtotime関数でいろいろ試してみた

基準が現在じゃないときは結構使えそう。メモメモ。
PHP

PHP5.3.8をCentOS6でbuildconfしたらすんなりいかなかった件

PHP5.3.8をCentOS6(GMOクラウドの仮想サーバ)でをPECL拡張を入れるため自前コンパイルしようとbuildconfしたらすんなり行かなかったので、ちょこっとメモ。
CakePHP

しつこいSecurityコンポーネントをゆるくする

Securityコンポーネントで管理者ページだけBASIC認証をかけようと思ったのでAppControllerで読み込ませたところ、ユーザページのフォームでトークン発行や項目チェックがしつこく掛かってしまい、いろいろ取り回しがしづらくて困ったので、状況を打破してみた。CakePHP 1.2.7にて確...
CakePHP

指定した複数のキーのいずれかに値が入っているか検査する

Set::filterを使っているので、CakePHP限定のお手軽技。複数の特定キーのいずれかに対してNULL以外の値が代入されているかを1文でチェックします。array_intersect($keys, array_keys(Set::filter($target_array)));
CakePHP

年別あるいは年月別に対応するSQL条件式を生成する

MTのブログなどではよく月別、年別で記事アーカイブのインデックスをディレクトリ(例:/post/2010/12/)で分けていると思いますが、それと同様に対応する簡単な方法。今頃CakePHP1.2RC2で検証。
CakePHP

URLによってModel::displayFieldを動的に変更する

routes.phpで設定した特定のルーティングに従ったURLでアクセスされた場合にモデルのdisplayFieldを動的に変更する方法。例えばURLが「/hoge/users/」だったらdisplayFieldを"hoge_name"、「/fuga/users/」だったら"fuga_name"にす...
CakePHP

個人的によく使いまわすAppModelにおける5つのメソッド

俺がCakePHPの開発では最近は必ずというほど実装しているAppModelの機能をなんとなく紹介してみる。だいたいはどこかのサイトに載っていたものを使っていますが、出所は覚えてなかったり。。。CakePHP 1.2.7対応(おそらく1.2共通)
CakePHP

Emailコンポーネントで文字コードを変換して送信する

CakePHP1.2.6にて。標準で組み込まれているEmailコンポーネントはいろいろ便利ですが、文字コード(charaset)のデフォルトがUTF-8になっています。近年のメーラーはほとんどがUnicode対応なのですが、未だUTF-8で送ると日本語が文字化けしてしまうものがあるようです。そこで文...
CakePHP

FormヘルパーとjQuery UIのdatepickterを連動させる

日付選択のプルダウンに対してjQuery Uに含まれるdatepickerを使う方法をメモついでに紹介。CakePHP 1.2.6 + jQuery 1.3.2 + jQuery UI 1.7.2で確認。
PHP

strftime関数がWindowsだと文字化けする件について

Linux上のPHPでは問題なく使えるんですが、XAMPPで動かしているPHPだとフォーマット文字列の解釈が上手くいかないんです。。。その原因を探ってみたのでメモ。
CakePHP

今更PHP4.3.2+PostgreSQL7.3で CakePHP1.2.5をどうしても動かしたい!(2日目)

前日に引き続き検証。なんとか動いた(?)ので、それまでの軌跡を記します。
PHP

strftime関数の変換指定子が プラットフォームによって微妙に違う件について

あるとき、smartyのdate_formatにおいて月をあらわす数値の最初のゼロを表示させない方法をググって見つけました。仙人の心得 ≫ date_formatそのとおりにやってみましたが、うまくいきません。しかし、以前は別の環境でうまくいってました。その原因と解決策について。