php проверить, существует ли файл на внешнем doman (доступ к форме поддомен)

У меня есть сайт на http://www.reelfilmlocations.co.uk

На вышеуказанном сайте есть область администрирования, где загружаются изображения и копии разных размеров, созданные в подпапках каталога uploads / images.

Я создаю сайт для мобильных устройств, которые будут работать в поддомене, но используют базу данных и изображения из основного домена, http://2012.reelfilmlocations.co.uk

Я хочу иметь доступ к изображениям, которые находятся в родительском домене, что я могу сделать, связав их с изображением с полным доменом, то есть http: www.reelfilmlocations.co.uk/images/minidisplay/myimage.jpg

Хотя мне нужно проверить, существует ли первое изображение …

У меня есть функция php, которая проверяет, существуют ли изображения, если она возвращает полный URL-адрес изображения.

Если он не существует, я хочу вернуть путь к образцу-заполнителю.

Следующая функция i возвращает правильное изображение, если оно существует, но если это не так, оно просто возвращает путь к каталогу, в котором находится образ-заполнитель, т.е. 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); } } 

Если не получится, чтобы это сработало, я кое-что погубил и прочитал несколько сообщений о завитке:

Это просто возвращает образ заполнителя каждый раз.

 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, или как проверить, так ли это.

любые указатели или вещи, которые я мог бы попробовать, были бы весьма благодарны.

Я бы сделал это, используя CURL, выдав запрос HEAD и проверив код ответа.

Не проверен, но должен сделать трюк:

  $URL = 'sub.domain.com/image.jpg'; $res = `curl -s -o /dev/null -IL -w "%{http_code}" http://$URL`; if ($res == '200') echo 'Image exists'; 

Приведенный выше код заполнит $res кодом состояния заявки (обратите внимание, что я НЕ включаю префикс http:// в переменную $URL потому что я делаю это в командной строке.

Конечно, то же самое можно было бы получить с помощью функций PHP CURL, и вышеупомянутый вызов может не работать на вашем сервере. Я просто объясняю, что я буду делать, если бы у меня была такая же потребность.