Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: картинки
 
 автор: dima2207   (06.05.2008 в 23:27)   письмо автору
 
 

Привет всем !
получаю картинки с удпленного сайта <img ...урл картинки > Как определить если картинка недоступна , то выводить свой шаблон типа "No picture".

   
 
 автор: Usta   (07.05.2008 в 00:24)   письмо автору
 
   для: dima2207   (06.05.2008 в 23:27)
 

<?
$URL
='logo.png';
if (
file_exists($URL))
  {  echo 
"<img src='".$URL."'>";  }  
  else 
   { echo 
"<img src='myimage.jpg' alt=\"МОЯ картинка\" width='200' height='200'>"; }
?>

   
 
 автор: dima2207   (07.05.2008 в 02:09)   письмо автору
 
   для: Usta   (07.05.2008 в 00:24)
 

Очень хорошо ! но боюсь что функция файл_ексист несработает в отношении с файлом на другом сервере .
Я предполагаю делать это сокетом , но это будет очень долго , если картинок до сотни на стр. !
есть ли еще предложения ?

   
 
 автор: Axxil   (07.05.2008 в 10:04)   письмо автору
 
   для: dima2207   (07.05.2008 в 02:09)
 

Если воспользоваться заголовком HEAD HTTP протокола, то будет быстро :).
В данном случае, всё тело ответа вам возвращаться не будет, а вернуться только заголовки, откуда можно вытащить код ответа (удачный это 200 OK)

Функция примерно такая:

<?
function remote_file_exists($url){
  
$parse parse_url($url);
  
$host $parse['host'];
  
$fp fsockopen ($host80$errno$errstr20);
  
fputs($fp"HEAD ".$url." HTTP/1.1\r\n");
  
fputs($fp"HOST: ".$host."\r\n");
  
fputs($fp"Connection: close\r\n\r\n");
  while(!
feof($fp)){
    
$response .= fgets ($fp128);
  }
  return (
strpos($response,'200 OK') === false)?false:true;
}
?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования