我已经被这个问题困扰了一段时间了。 我试图在PHP中加载图像,但有jpg和JPG图像,当我尝试通过jpg加载图像时,找不到JPG(显然)
$img1 = '<img src="imgs/'.$firstImage.'.jpg"></img>';
$img2 = '<img src="imgs/'.$secondImage.'.jpg"></img>';
$img3 = '<img src="imgs/'.$thirdImage.'.jpg"></img>';
$img4 = '<img src="imgs/'.$fourthImae.'.jpg"></img>';
知道如何解决这个问题吗?
我尝试使用if_exists
,但效果不佳
if (file_exists('http://website_url.nl/imgs/'.$firstImage.'.jpg')) {
$img1 = '<img src="imgs/'.$firstImage.'.jpg"></img>';
} else {
$img1 = '<img src="imgs/'.$firstImage.'.JPG"></img>';
}
现在的问题是它无法通过常规jpg找到图像。例如,我尝试加载23.jpg
,但脚本会尝试加载23.JPG
,因为文件23.jpg
不存在,而它确实存在并放在文件夹中23.JPG
1}}不是。它适用于JPG文件。例如找到DOC_202.JPG
,因为DOC_202.jpg
不存在,因此会加载JPG
。{1}}。但是对于jpg
个,它不会起作用。任何解决方案?
亲切的问候,
答案 0 :(得分:2)
只需检查您本地目录中的文件,不要使用网址
if(file_exists('imgs/'.$firstImage.'.jpg')) {
大多数网址包装都不支持stat(),请参阅 http://www.php.net/manual/en/function.file-exists.php(关于php5的蓝色注释)和http://www.php.net/manual/en/wrappers.php
编辑:
PS:旁注,当使用Windows时,目录分隔符是反斜杠&#39; \&#39;,在linux上它是正斜杠&#39; /&#39;。如果您需要全局解决方案,请参阅全局常量DIRECTORY_SEPARATOR
。
答案 1 :(得分:0)
函数file_exists检查本地系统是否存在文件,而不是外部URL。
http://php.net/manual/en/function.file-exists.php
因此,如果将file_exists参数更改为本地地址,则应该可以正常工作。例如:
if(file_exists('/webdirectory/public_html/project/images/' . $image1 . '.jpg')){
//do stuff
}
file_exists的区分大小写取决于它所驻留的文件系统。在unix服务器上,文件大小写,file_exists也是如此。
PHP手册中的这条评论提出了一种通过URL检查的方法:http://php.net/manual/en/function.file-exists.php#75064