Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Не работает cURL

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Простейшая проверка адреса
amakk
Отправлено: 13 Апреля, 2014 - 19:51:16
Post Id


Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Май 2013  


Помог: 0 раз(а)




На сервере cURL точно включен и работает, т.к. другой скрипт с получением страницы целиком работает корректно. Этот выдаёт просто белую страницу.

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. function check_url($url) {
  3.     $c = curl_init();
  4.     curl_setopt($c, CURLOPT_URL, "http://www.php.net/manual/ru/function.curl-exec.php");
  5.     curl_setopt($c, CURLOPT_HEADER, 1); // читать заголовок
  6.     curl_setopt($c, CURLOPT_NOBODY, 1); // читать ТОЛЬКО заголовок без тела
  7.     curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
  8.     curl_setopt($c, CURLOPT_FRESH_CONNECT, 1); // не использовать cache
  9.     if (!curl_exec($c)) return false;
  10.  
  11.     $httpcode = curl_getinfo($c, CURLINFO_HTTP_CODE);
  12.     return ($httpcode < 400);
  13.    
  14. if($httpcode < 400) echo("страница доступна");
  15.    else echo("страница недоступна");
  16. }
  17. ?>
 
 Top
OrmaJever Модератор
Отправлено: 13 Апреля, 2014 - 20:12:08
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




amakk пишет:
Этот выдаёт просто белую страницу.

Что он должен вывести? Однако
amakk пишет:
PHP:
скопировать код в буфер обмена
  1. return ($httpcode < 400);
  2.    
  3. if($httpcode < 400) echo("страница доступна");
  4.    else echo("страница недоступна");


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
amakk
Отправлено: 13 Апреля, 2014 - 20:13:43
Post Id


Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Май 2013  


Помог: 0 раз(а)




Должен вывести сообщение "страница доступна" или "страница недоступна"
 
 Top
OrmaJever Модератор
Отправлено: 13 Апреля, 2014 - 22:02:47
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




нет, не должен, я вам скопировал то из-за чего не должен. Посмотрите внимательнее.
Что бы понять почему не работает код нужно думать как код Закатив глазки


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
amakk
Отправлено: 13 Апреля, 2014 - 22:20:18
Post Id


Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Май 2013  


Помог: 0 раз(а)




Ну я пока не умею думать как код, return одновременно с if нельзя применять что ли?
 
 Top
alexiy
Отправлено: 13 Апреля, 2014 - 22:25:42
Post Id



Посетитель


Покинул форум
Сообщений всего: 483
Дата рег-ции: Янв. 2011  


Помог: 6 раз(а)




 
 Top
amakk
Отправлено: 13 Апреля, 2014 - 22:32:11
Post Id


Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Май 2013  


Помог: 0 раз(а)




Про return понял. Ок переписал, нужно не просто доступна, недоступна, хочу получить точный номер ответа сервера, но теперь он почему-то мне вообще всю страницу запрашиваемую выдаёт:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $ch = curl_init ("http://www.php.net/manual/ru/function.curl-exec.php");
  3.  
  4. $kod = curl_getinfo($ch, CURLINFO_HTTP_CODE);
  5.    
  6. curl_exec ($ch);
  7. curl_close ($ch);
  8. fclose ($fp);
  9.  
  10. echo $kod;?>


UP: Передвинул echo $kod; на 5 строчку в начале страницы стало выдавать "0" но код-то я так понимаю должен быть 200 если всё работает а не 0

(Отредактировано автором: 13 Апреля, 2014 - 22:35:04)

 
 Top
OrmaJever Модератор
Отправлено: 13 Апреля, 2014 - 22:38:09
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




amakk пишет:
return одновременно с if нельзя применять что ли?

Есть такое выражение "После return жизни нет", всё что после return до конца функции не выполнится.
amakk пишет:
PHP:
скопировать код в буфер обмена
  1. $ch = curl_init ("http://www.php.net/manual/ru/function.curl-exec.php");
  2.  
  3. $kod = curl_getinfo($ch, CURLINFO_HTTP_CODE);
  4.    
  5. curl_exec ($ch);

Вот не хотите даже примеры смотреть в документации. Когда вы вызываете curl_getinfo() ещё никакого запроса никуда не было, а вы уже код просите. Сам запрос серверу отправляет curl_exec() и соответственно просить код нужно уже после неё.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
amakk
Отправлено: 13 Апреля, 2014 - 22:47:29
Post Id


Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Май 2013  


Помог: 0 раз(а)




В документации миллион функций и их параметров описано, пока читаешь забудешь что хотел сделать))
Да про curl_exec понял ошибку, я думал она выводит на экран как раз страницу, и понял почему 0 был, тогда если сделать так должно всё работать:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $ch = curl_init ("http://www.php.net/manual/ru/function.curl-exec.php");
  3. curl_exec ($ch);
  4.  
  5. $kod = curl_getinfo($ch, CURLINFO_HTTP_CODE);
  6. echo $kod;
  7.  
  8. curl_close ($ch);
  9. fclose ($fp);
  10. ?>


До закрытия curl_close я так полагаю вывести надо? Но всё равно в общем не заработало
(Добавление)
curl_exec - эта функция должна вызываться после инициализации сеанса и установки всех необходимых параметров (http://www.php.net/manual/ru/function.curl-exec.php).

Значит я первоначально правильно делал и curl_getinfo не надо поднимать над ней...

(Отредактировано автором: 13 Апреля, 2014 - 22:47:51)

 
 Top
amakk
Отправлено: 14 Апреля, 2014 - 09:53:12
Post Id


Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Май 2013  


Помог: 0 раз(а)




Разобрался, всем спасибо
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB