我在http://www.reelfilmlocations.co.uk上有一个网站
上述站点有一个管理区域,其中上传图像并在 uploads/images 目录的子文件夹中创建不同大小的副本。
我正在为移动设备创建一个站点,它将在子域上运行,但使用来自主域的数据库和图像, http://2012.reelfilmlocations.co.uk
我希望能够访问父域上的图像,我可以通过链接到具有完整域的图像来做到这一点,即 http:www.reelfilmlocations.co.uk/images/minidisplay/myimage.jpg
虽然我需要先检查图像是否存在......
我有一个 php 函数来检查图像是否存在,如果存在则返回图像的完整 url。
如果它不存在,我想返回占位符图像的路径。
我有以下函数,如果存在则返回正确的图像,但如果不存在,它只是返回占位符图像所在目录的路径,即http://www.reelfilmlocations.co.uk/images/thumbs/
. 没有 no-image.jpg 位。
有问题的页面是:http: //2012.reelfilmlocations.co.uk/browse-unitbases/ 我在页面上获取图像的代码是:
<img src="<?php checkImageExists('/uploads/images/thumbs/', $row_rs_locations['image_ubs']);?>">
我的php函数:
if(!function_exists("checkImageExists")){
function checkImageExists($path, $file){
$imageName = "http://www.reelfilmlocations.co.uk".$path.$file;
$header_response = get_headers($imageName, 1);
if(strpos($header_response[0], "404" ) !== false ){
// NO FILE EXISTS
$imageName = "http://www.reelfilmlocations.co.uk".$path."no-image.jpg";
}else{
// FILE EXISTS!!
$imageName = "http://www.reelfilmlocations.co.uk".$path.$file;
}
echo($imageName);
}
}
未能让这个工作我做了一些挖掘并阅读了一些关于 curl 的帖子:
这只是每次都返回一个占位符图像。
if(!function_exists("remoteFileExists")){
function remoteFileExists($url) {
$curl = curl_init($url);
//don't fetch the actual page, you only want to check the connection is ok
curl_setopt($curl, CURLOPT_NOBODY, true);
//do request
$result = curl_exec($curl);
$ret = false;
//if request did not fail
if ($result !== false) {
//if request was ok, check response code
$statusCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
if ($statusCode == 200 ) {
$ret = true;
}
}
curl_close($curl);
return $ret;
}
}
if(!function_exists("checkImageExists")){
function checkImageExists($path, $file){
$imageName = "http://www.reelfilmlocations.co.uk".$path.$file;
$exists = remoteFileExists($imageName);
if ($exists){
// file exists do nothing we already have the correct $imageName
} else {
// file does not exist so set our image to the placeholder
$imageName = "http://www.reelfilmlocations.co.uk".$path."no-image.jpg";
}
echo($imageName);
}
}
我不知道这是否与获得 403 有关,或者如何检查是否是这种情况。
我可以尝试的任何指示或事情将不胜感激。