最近、PHP ベースの Web サイトを開発しているときに、IE ブラウザーで画像が表示されないという非常に奇妙な問題に遭遇しました。他のブラウザでは画像は正常に表示されますが、IE だけが問題を抱えているため、これが気になります。
いくつかの調査の結果、問題の根本原因は、画像ファイル名にスペースまたは漢字が含まれていることであることがわかりました。 IE のキャッシュ管理メカニズムは他のブラウザとは異なるため、画像ファイル名にスペースや漢字が含まれている場合、IE では自動的に URL エンコードにエンコードされますが、他のブラウザではエンコードされません。
具体的には、画像ファイル名にスペースや漢字が含まれている場合、IE は次の形式に変換します:
http://example.com/images/Picture test .jpg
絵は、漢字「絵」の URL エンコード形式であり、スペースの URL エンコード形式です。
ただし、PHP でそのような画像を参照する場合は、元の形式にデコードする必要があります。そうしないと表示できません。具体的には、PHP の img タグを使用して画像を参照する場合、以下に示すように、urldecode() 関数を通じて画像パスをデコードする必要があります。
このようにして、IE では正常に画像が表示されるようになります。
さらに、urlencode() 関数を使用して画像パスをエンコードしたり、画像ファイル名のスペースや漢字を他の文字に置き換えたりするなど、他の解決策もいくつかあります。ただし、これらのメソッドは他の互換性の問題を引き起こす可能性があるため、urldecode() 関数を使用して、すべてのブラウザと互換性があるようにデコードすることをお勧めします。
今回の経験を通じて、ブラウザごとのエンコード処理の違いを痛感し、開発時には特に注意が必要です。
以上がPHP Web サイト、つまりピクチャにピクチャが表示されないの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。