PHP

WordPressで「Allowed memory size of ~ bytes exhausted」エラー

WordPress 6.1.1 で固定ページを編集しようとした際に、掲題のエラーが発生するようです。

表示されるメモリサイズは、サイトによって異なる様子。

また、Xserver上で運用しているWordpressでのみ現象を確認していますが、Xserverが悪いかというとそういうわけでもなさそうです。

続きを読む

【PHP】外部サイトからのデータ取得を高速化する「curl_multi」

外部のAPIと通信する際にちまちまとループしていると、すべての検索結果を取得するまでに結構な時間がかかってしまいます。

せっかくWeb系のAPIを利用しているのに、これではアナログな手段で調べたほうが早くなってしまうというもの…

さらに非同期通信であることが多いわけですから、なんのための非同期通信なのかな?となってしまいます。

そんな場合に「まとめてレスポンスを取得する」ための手段が「curl_multi」関数です。

ということで、自分用にメモとしてまとめておきます。

続きを読む

【form】input[type=submit]で送信されたPOSTデータから、PHPで生成したCSVをダウンロードする

フォームから PHP で抽出条件を POST し、処理結果を CSV でダウンロードする必要がありました。
なんとなく思いついたいくつかの方法を調べてみたものの、どれもこれもややこしい内容で…
正直なところ「これを実装するなら…」という記事ばかり。

そんな中、ダメ元でトライしてみた方法でさくっとできてしまったので、メモしておきます。

続きを読む

【PHP】古いバージョンにあわせて調整する(session・header・pdo)

「開発環境とリリース環境はできるだけ差異がないようにする」というのは、どの言語でも基本原則ですね。

ですが、そこがWeb開発の難儀なところで…

「事前に聞いていた環境と違う」とか「そもそも誰もそこをヒアリングしていなかった」とか「いざリリースという段階で発覚した」とかいうことが往々にして発生します。

古いバージョンに適合するように調整するのは、基本的には面倒な作業です。
特に「古いバージョンでは利用できない関数」を利用していると、本当に悲惨なことになります…

今回は「そこまで悲惨ではないのだけれども、特定に時間を使ってしまった」事例ということで「session関数」と「header関数」、「pdo関数」について扱います。

続きを読む

【cron】PHPをcronで自動実行する

特にデータベース系の管理業務や、他アプリケーションとの連携などで必要になるcronでの定期実行についてです。
理屈は理解していたものの、実際に設定するとなるとちょっと調べなければいけなかったので忘備しておきます。

続きを読む

【PHP】日本語ファイルのアップロード処理

基本的には問題なく処理できているはずのアップロード処理が、一部のファイルで不具合発生していたので、解決までの流れをメモしておきます。

解決策

以下の記述を取り急ぎ追加し、問題解消を確認しました。

  • mb_internal_encoding(“UTF-8”); を追加
  • setlocale(LC_CTYPE, ‘Japanese_Japan.932’);
  • basename() を別の処理に変更
続きを読む