覚書です。
Contents
サイトで技術的な問題が発生しています
WordPressから「サイトで技術的な問題が発生しています」というメールが届きました。
サイトで技術的な問題が発生しています
もう少しどの関数を使うのか吟味するべきだったかもしれませんが、file_get_contentsを使っている画像が突然取得できなくなり、エラーハンドリングが弱かったのが原因のようです。
この問題はサーバーの問題だったのか、数日後、自然と解決します。
しかし、解消する前にこの問題に取り組んで別の方法を探しました。アップロードする前に自然と解消した感じですが、コードを差し替えました。
スポンサーリンク
file_get_contents、cURL、wp_remote_getの違い
https://qiita.com/shinkuFencer/items/d7546c8cbf3bbe86dab8
file_get_contents()
はファイルパスを指定してデータを取得するだけではなく
URLを指定すればそのURLの情報を手軽にとれる関数ですが
対API等に使うと色々とハマるポイントが多いので、それを簡単に解説したものです。
#WordPressを知らないPHPエンジニアあるある
— Fumito Mizuno (@ounziw) October 11, 2019
cURLやfile_get_contentsを使っている
→ wp_remote_getを使いましょう。#wordpressjp #php #programming
1. file_get_contents
- 特徴: PHPの標準関数で、最もシンプル
- メリット: コードが短く、追加設定が少ない
- デメリット: サーバー設定(allow_url_fopen)に依存し、エラーハンドリングが弱い
- 例え: 手紙を取りに行くだけ。届かなければ「ない」としか言えない
2. cURL
- 特徴: PHPの拡張機能で、HTTP通信に特化
- メリット: 詳細な設定が可能(タイムアウト、リダイレクト、ヘッダー等)
- デメリット: サーバーにcURL拡張が必要、コードが長くなる
- 例え: 配達人に詳細な指示を出して手紙を取りに行かせる。「どこで」「なぜ」失敗したかも教えてくれる
3. wp_remote_get
- 特徴: WordPressの関数で、内部でcURLかfile_get_contentsを使用
- メリット: WordPressの設定を考慮し、どちらかの方法を自動選択
- デメリット: WordPressでしか使えない
- 例え: WordPressという秘書に「これ取ってきて」と頼む。秘書が最適な方法を選んでくれる
wp_remote_getを使いました。ご参考になれば幸いです。
コメント