최근 PHP 기반의 웹사이트를 개발할 때 IE 브라우저에서 이미지가 표시되지 않는 매우 이상한 문제에 직면했습니다. 이미지가 다른 브라우저에서는 잘 표시되고 IE에만 문제가 있기 때문에 이것이 나를 귀찮게 합니다.
몇몇 조사 끝에 문제의 근본 원인은 이미지 파일 이름에 공백이나 한자가 포함되어 있다는 것을 알았습니다. IE의 캐시 관리 메커니즘은 다른 브라우저와 다르기 때문에 이미지 파일 이름에 공백이나 한자가 포함된 경우 IE는 자동으로 Url 인코딩으로 인코딩하지만 다른 브라우저는 그렇지 않습니다.
구체적으로 이미지 파일 이름에 공백이나 한자가 포함된 경우 IE는 이를 다음 형식으로 변환합니다.
http://example.com/images/%E5%9B%BE%E7%89 %87%20 %E6%B5%8B%E8%AF%95.jpg
여기서 %E5%9B%BE%E7%89%87은 한자 "그림"의 URL 인코딩 형식이고, %20은 그림의 URL입니다. 공간 인코딩 형식.
그러나 PHP에서 이러한 이미지를 참조할 때는 원래 형식으로 다시 디코딩해야 합니다. 그렇지 않으면 표시되지 않습니다. 특히 PHP의 img 태그를 사용하여 이미지를 참조하는 경우 아래와 같이 urldecode() 함수를 통해 이미지 경로를 디코딩해야 합니다:
이렇게 하면 IE에서는 사진이 정상적으로 표시될 수 있습니다.
그 외에도 urlencode() 함수를 사용하여 이미지 경로를 인코딩하거나 이미지 파일 이름의 공백과 한자를 다른 문자로 바꾸는 등의 다른 해결 방법도 있습니다. 그러나 이러한 방법은 다른 호환성 문제를 일으킬 수 있으므로 모든 브라우저와 호환되도록 디코딩하려면 urldecode() 함수를 사용하는 것이 가장 좋습니다.
일반적으로 이번 경험을 통해 브라우저마다 인코딩 처리의 차이를 깊이 깨달았고, 개발할 때 각별히 주의해야 합니다.
위 내용은 PHP 웹사이트, 즉 사진이 사진을 표시하지 않습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!