Laravel:mb_convert_encoding が原因でエラー発生

Laravel:mb_convert_encoding が原因でエラー発生

Laravel:mb_convert_encoding が原因でエラー発生

旧システムでは動いていたスクリプトを移植(多少修正)した結果、エラー発生。

なるほど、エンコードが解らんぞと言う事ですね。

何をしたかったか

Amazonなどのサイトから商品画像を取得しようと試みたスクリプトです。

リンク切れや誤記載で404エラー専用ページとかに飛ばされた時の処理を書こうと上記コードを書いてました。
システムで読むので、文字コードを『UTF-8』に統一して所定の文字があるか判断させようというもの。

旧システムではしっかり動いていたのですが、なぜかエラー。
引数の “auto” が読めない事が原因の様です。

サイトの文字コードを先に取得して引数に流し込んで解決

こんな感じにしました。

$charset = mb_detect_encoding($url,’ASCII,JIS,UTF-8,EUC-JP,SJIS’); でエンコードを調べて
$check_title = mb_convert_encoding($sResponce,”UTF-8″ ,$charset); の引数として格納

caseの場合分けは取得してくるサイトの出すエラーページのタイトルを記載します。
これで404エラーの時に『ページがございません』ページへ飛ばす仕組みがあっても無事飛ばせます。

 まとめ

それにしても fail_get_contents が重い。

Amazon画像の取得はやっぱり自動化しないとダメかなと思う今日この頃です。
※でもね、自動化するとJAN間違えてる商品画像も持ってきちゃうんですよ(悩)