Maison  >  Article  >  développement back-end  >  Site Web PHP, c'est-à-dire que les images n'affichent pas d'images

Site Web PHP, c'est-à-dire que les images n'affichent pas d'images

王林
王林original
2023-05-28 21:16:06551parcourir

Récemment, lors du développement d'un site Web basé sur PHP, j'ai rencontré un problème très étrange, c'est-à-dire que les images ne peuvent pas être affichées dans le navigateur IE. Cela me dérange car l'image s'affiche correctement dans les autres navigateurs, seul IE a des problèmes.

Après quelques recherches, j'ai découvert que la cause première du problème était que le nom du fichier image contenait des espaces ou des caractères chinois. Étant donné que le mécanisme de gestion du cache d'IE est différent de celui des autres navigateurs, lorsque le nom du fichier image contient des espaces ou des caractères chinois, IE l'encodera automatiquement en codage Url, mais pas les autres navigateurs.

Plus précisément, lorsqu'un nom de fichier image contient des espaces ou des caractères chinois, IE le convertira sous la forme suivante :

http://example.com/images/%E5%9B%BE%E7%89 %87%20 %E6%B5%8B%E8%AF%95.jpg

où %E5%9B%BE%E7%89%87 est la forme d'encodage d'URL du caractère chinois "image", et %20 est l'URL d'un espace Formulaire d'encodage.

Cependant, lors du référencement d'une telle image en PHP, elle doit être décodée vers sa forme originale, sinon elle ne sera pas affichée. Plus précisément, lorsque vous utilisez la balise img de PHP pour référencer une image, le chemin de l'image doit être décodé via la fonction urldecode(), comme indiqué ci-dessous :

De cette façon, l'image peut être affichée normalement dans IE.

De plus, il existe d'autres solutions, comme utiliser la fonction urlencode() pour encoder le chemin de l'image, ou remplacer les espaces et les caractères chinois dans le nom du fichier image par d'autres caractères. Cependant, ces méthodes peuvent entraîner d'autres problèmes de compatibilité, il est donc préférable d'utiliser la fonction urldecode() pour décoder afin d'être compatible avec tous les navigateurs.

En général, grâce à cette expérience, j'ai profondément réalisé les différences de traitement d'encodage entre les différents navigateurs, et je dois être très prudent pendant le développement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn