Php file_exists()对于名称中带有空格的文件返回false

Php file_exists()对于名称中带有空格的文件返回false,php,file-exists,Php,File Exists,我有以下代码: $url = 'http://www.bgelectronics.eu/image/cache/data/cantell kabeli /14222-228x228.jpg'; $headers = get_headers($url, true); var_dump($headers); 由于文件名中有空格,此操作返回缺少文件的错误: array(6) { [0]=> string(34) "HTTP/1.1 500 Internal Server Error"

我有以下代码:

$url     = 'http://www.bgelectronics.eu/image/cache/data/cantell kabeli /14222-228x228.jpg';
$headers = get_headers($url, true);
var_dump($headers);
由于文件名中有空格,此操作返回缺少文件的错误:

array(6) { [0]=> string(34) "HTTP/1.1 500 Internal Server Error" ["Date"]=>     
string(29) "Tue, 24 Mar 2015 16:11:18 GMT" ["Server"]=> string(6) "Apache" 
["Content-Length"]=> string(3) "677" ["Connection"]=> string(5) "close" 
["Content-Type"]=> string(29) "text/html; charset=iso-8859-1" } file size:677

有什么建议吗?

问题是
file\u exists()
用于文件系统,而不是http。您需要使用服务器目录路径。如果它与您的代码位于同一服务器上,则它应该看起来像:

if(file_exists('image/cache/data/cantell kabeli /202441-500x500.jpg')){
....
如果在远程服务器上,请尝试:

if(file_get_contents('http://www.bgelectronics.eu/image/cache/data/cantell kabeli /202441-500x500.jpg')){
...
您可以在这里找到许多其他方法:

尝试以下方法:

copy('http://www.bgelectronics.eu/image/cache/data/cantell kabeli /202441-500x500.jpg', '/image.jpeg');
如果没有,请使用


这是在远程服务器上,我没有访问权限。。在我的例子中如何检查文件?我也在使用copy()函数复制文件,但它也找不到文件#CBroe问题现在有了新的维度:)。您的空间可能需要URL编码这听起来不错!让我来测试一下,也许您需要考虑在“ ToIP -PHP5.0.0中的注释”,这个函数也可以与一些URL包装器一起使用。请参考支持的协议和包装器来确定哪些包装支持Stand()函数的函数< /代码>,并且注意不支持“代码> Stand())。
servImagesDir
应该是
$servImagesDir
没有人,这是我的配置图像路径。。问题出在远程映像中,而不是本地服务器上。。请测试是否可以复制此图像,然后打开它。#Ahmed,请尝试使用您的方法复制该图像,以确保复制成功,但无法打开该图像,可以尝试吗?我忘记添加此选项,“/image.jpeg”您现在可以尝试吗?:复制('kabeli/202441-500x500.jpg','/image.jpeg');同样的事,你也试过了吗?你能看到/打开图像吗?试试这个并告诉我们错误:copy('kabeli/202441-500x500.jpg','image.jpg');使用“http://www.”警告:复制(bgelectronics.eu/image/cache/data/cantell-kabeli/202441-500x500.jpg):无法打开流:第18行的/www/…/…/…/root/example2.php中没有此类文件或目录
//Get the file
$content = file_get_contents("http://www.bgelectronics.eu/image/cache/data/cantell kabeli /202441-500x500.jpg");
//Store in the filesystem.
$fp = fopen("/location/to/save/image.jpg", "w");
fwrite($fp, $content);
fclose($fp);