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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Как проверить на существование удаленного файла

Сообщения:  [1-10]   [11-16] 

 
 автор: Igorek   (17.12.2012 в 07:51)   письмо автору
 
   для: OLi   (16.12.2012 в 00:38)
 

Это не ошибка, а предупреждение, т.е. работа скрипта не должна прекращаться. А само предупреждение можно "подавить" используя собаку

  Ответить  
 
 автор: OLi   (16.12.2012 в 00:38)   письмо автору
 
   для: OLi   (13.12.2012 в 20:14)
 

В общем нужна ваша подсказка:
Сделал так:


    
 <?
  $ch 
curl_init();
  
curl_setopt ($chCURLOPT_RETURNTRANSFER1);
  
curl_setopt ($chCURLOPT_URL$image_url);
  
curl_setopt ($chCURLOPT_CONNECTTIMEOUT20);
  
curl_setopt ($chCURLOPT_USERAGENT$_SERVER['HTTP_USER_AGENT']);
  
curl_setopt ($chCURLOPT_FOLLOWLOCATIONtrue);
  
curl_setopt($chCURLOPT_HEADERtrue); 
  
curl_setopt($chCURLOPT_NOBODYtrue);

  
$content curl_exec ($ch);
  
$contentType curl_getinfo($chCURLINFO_CONTENT_TYPE);
  
    
    
// $retcode > 400 -> not found, $retcode = 200, found. 
    
if ($retcode == 404 && $contentType =='text/html') {
    
        
curl_close($ch);

        return 
false;
    } else {
        
        
curl_close($ch);
        return 
true;} 
     

}
?>


 <?    if (HaveFile($row['image_tmp']) == true ) {
        
        if (
file_put_contents('images/'.$name.'_'.$row['listid'].'.'.getExtension4($row['image_tmp']), file_get_contents($row['image_tmp']))) {

                
$db mysql_query('UPDATE images set status=1, fname = "'.$name.'_'.$row['listid'].'.'.getExtension4($row['image_tmp']).'" WHERE listid="'.$row['listid'].'"');
    
                
LoadIMage();
        }
    } 
?>


Сейчас возникает ошибка:
Warning: file_get_contents(http://autohmao.ru/images/anno/big2_1355500315.JPG) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /home/g/garmonia/site.com/public_html/parsing/cars/index.php on line 241

Как можно отловить такого рода ошибки, чтобы скрипт прошел дальше на исполнение?

  Ответить  
 
 автор: Sfinks   (14.12.2012 в 19:47)   письмо автору
 
   для: OLi   (14.12.2012 в 17:06)
 

Да, забыл, еще нужно добавить
curl_setopt($ch, CURLOPT_HEADER, true);

  Ответить  
 
 автор: OLi   (14.12.2012 в 17:06)   письмо автору
 
   для: Sfinks   (13.12.2012 в 21:41)
 

Что-то не работает..возвращает строку URL только

  Ответить  
 
 автор: Sfinks   (13.12.2012 в 21:41)   письмо автору
 
   для: OLi   (13.12.2012 в 19:53)
 

$file = 'http://windows.php.net/downloads/releases/php-5.3.19-Win32-VC9-x86.msi';  
$ch = curl_init($file); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_NOBODY, true); 
$s = curl_exec($ch);

$s будет содержать заголовки ответа сервера.
Заголовок Content-Type - тип содержимого

  Ответить  
 
 автор: OLi   (13.12.2012 в 20:14)   письмо автору
 
   для: Igorek   (13.12.2012 в 19:57)
 

А для CURL узнать, что это изображение?

  Ответить  
 
 автор: Igorek   (13.12.2012 в 19:57)   письмо автору
 
   для: Sfinks   (13.12.2012 в 16:07)
 

ну вот я про тоже. используя
<?php
stream_context_set_default
(array('http' => array('method' => 'HEAD'))); 

можно было бы избежать операций с curl или сокетами, но это для php >= 5.3.0

  Ответить  
 
 автор: OLi   (13.12.2012 в 19:53)   письмо автору
 
   для: OLi   (13.12.2012 в 19:30)
 

а можно узнать через curl тип вернувшегося содержимого? скажем сделать проверку вернул ли сервер картинку?

  Ответить  
 
 автор: OLi   (13.12.2012 в 19:30)   письмо автору
 
   для: OLi   (13.12.2012 в 16:59)
 

Сделал так:
<?

$file 
'http://windows.php.net/downloads/releases/php-5.3.19-Win32-VC9-x86.msi'

$ch curl_init($file);

curl_setopt($chCURLOPT_NOBODYtrue);
curl_exec($ch);
$retcode curl_getinfo($chCURLINFO_HTTP_CODE);
// $retcode > 400 -> not found, $retcode = 200, found.
echo $retcode;
curl_close($ch);

?>

  Ответить  
 
 автор: OLi   (13.12.2012 в 16:59)   письмо автору
 
   для: Sfinks   (13.12.2012 в 16:07)
 

Можно пример?

  Ответить  

Сообщения:  [1-10]   [11-16] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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