【问题标题】:Get image JPG and jpg获取图片 JPG 和 jpg
【发布时间】:2016-09-05 08:04:55
【问题描述】:

我已经被这个问题困扰了一段时间了。 我正在尝试在 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 不存在。它适用于 JPG 文件。例如DOC_202.JPG 被发现是因为DOC_202.jpg 不存在所以它加载JPG 之一。但是使用jpg 将无法正常工作。有什么解决办法吗?

致以诚挚的问候,

【问题讨论】:

  • 上传文件时有可能修改文件吗?这样可能负责上传的 PHP 脚本将所有内容都转换为小写。还是文件由其他人手动处理?
  • @Theekopje 你可以自己重命名它们,对吧?
  • 你为什么要检查,如果文件存在完整的 URL?
  • 在上传图片之前找到重命名图片的方法,最好是在脚本中。输入清理是您的朋友。
  • @Theekopje 正如我刚刚编辑的那样,请确保先重命名文件,然后更改扩展名。 Windows 不会让您更改文件的大小写,因为它希望您没有更改任何内容,因此您需要通过更改不只是大小写的内容来强制它更改它。

标签: php image jpeg exists file-exists


【解决方案1】:

只检查本地目录中的文件,不要使用 url

if(file_exists('imgs/'.$firstImage.'.jpg')) {

大多数 url 包装器不支持 stat(),请参阅 http://www.php.net/manual/en/function.file-exists.php(最后关于php5的蓝色注释)和http://www.php.net/manual/en/wrappers.php

编辑:
PS:旁注,在使用 Windows 时,目录分隔符是反斜杠“\”,在 linux 上是正斜杠“/”。如果您需要全局解决方案,请参阅全局常量 DIRECTORY_SEPARATOR

【讨论】:

  • 这对我有用,但我不知道为什么,因为this post 建议使用完整链接?不过谢谢!
  • 这很奇怪。您应该使用文件的物理本地地址。
  • @PerEnström 是相对物理本地文件名,不是相对url。查看我的编辑,linux(服务器)使用正斜杠作为目录分隔符
  • @clemens321 是的,我指的是 Theekopje 的链接问题。不是你的答案! :)
  • 关于使用 URL 代替物理地址,请查看 PHP.net 上的此评论:php.net/manual/en/function.file-exists.php#75064
【解决方案2】:

函数 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

【讨论】:

    猜你喜欢
    • 2021-05-18
    • 1970-01-01
    • 1970-01-01
    • 2010-11-24
    • 1970-01-01
    • 1970-01-01
    • 2020-09-01
    • 2011-04-01
    • 2015-06-01
    相关资源
    最近更新 更多