PHPのバージョン更新により発生する障害に付いて

自分の作ったホームページ(youtubeを使ったシステムです)を、友人に紹介しようとして開いてみたら、要の機能が動きませんでした。

エラーが出てそれでオシマイです。

今までそんな事は無かったのに突然発生です。と言っても暫くそのホームページをイジっていませんでした。なので何時からそんなことが起きているが想像もつきませんでした。

エラーは、以下のようなものでした。

Fatal error: Uncaught Error: Cannot use string offset as an array in /***/mykaraoke/common/function.php:75 Stack trace: #0 /***/mykaraoke/search.php(29): youtube_xml(‘\xE3\x82\xAB\xE3\x83\xA9\xE3\x82\xAA\xE3\x82\xB1 \xE3\x81…’, ‘0’, ‘1’) #1 {main} thrown in /****/mykaraoke/common/function.php on line 75

 

unction.php:75はこんなプログラムです。作成したの僕ですが何をしているのか?...文字列をUTF8に変換でしょうか? ^^;

$list_you[$i][‘title’] = mb_strimwidth ($title, 0, 80, “…”, “utf-8”);

で、自分の開発環境(Ecripse+MAMP+php5.X)を使って動かしてみたらちゃんと動きました。

ネット調べると、

Cannot use string offset as an array in…..

のエラーは

原因

エラー内容はStringなのにオフセットに配列つかうんじゃねえ
つまり文字列を対象に3次元配列としてアクセスしちゃうとPHP4ではなんもしないもに
PHP5ではエラーになっちゃうってことですね。

使っているPHPのバージョンでエラーになることがある。というヒントが書いてありました。

そう言えば、レンタルサーバーのPHPのバージョンを最新に変更したような気がすると思い、レンタルサーバーのPHPのバージョンを調べたら、PHP7.1でした。

そこで標準(お薦め)のPHP5.6に変更したところ、問題なく動き始めました。原因はこれでした。

安易な、バージョンアップにより不具合が発生していました。

本来は、PHP7.1でも不具合にならないようにプログラムを修正した方が良いのです。試しに自分の開発環境(Ecripse+MAMP)のPHPのバージョンをPHP7.1(7.1は試験段階みたいです)にしたところチャント動いていました。

結論です。

レンタルサーバーのPHPのバージョンを変える時は、作成した全てのホームページの全機能を確認してリリースしないといけません。どこから不具合が発生するか分からないからです。

この情報が皆さんのお役に立ちますように。

以上

Follow me!

0

    コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です