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
Форумы портала PHP.SU :: Версия для печати :: Не работает cURL
Форумы портала PHP.SU » » Вопросы новичков » Не работает cURL

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

1. amakk - 13 Апреля, 2014 - 19:51:16 - перейти к сообщению
На сервере 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. ?>
2. OrmaJever - 13 Апреля, 2014 - 20:12:08 - перейти к сообщению
amakk пишет:
Этот выдаёт просто белую страницу.

Что он должен вывести? Однако
amakk пишет:
PHP:
скопировать код в буфер обмена
  1. return ($httpcode < 400);
  2.    
  3. if($httpcode < 400) echo("страница доступна");
  4.    else echo("страница недоступна");
3. amakk - 13 Апреля, 2014 - 20:13:43 - перейти к сообщению
Должен вывести сообщение "страница доступна" или "страница недоступна"
4. OrmaJever - 13 Апреля, 2014 - 22:02:47 - перейти к сообщению
нет, не должен, я вам скопировал то из-за чего не должен. Посмотрите внимательнее.
Что бы понять почему не работает код нужно думать как код Закатив глазки
5. amakk - 13 Апреля, 2014 - 22:20:18 - перейти к сообщению
Ну я пока не умею думать как код, return одновременно с if нельзя применять что ли?
6. alexiy - 13 Апреля, 2014 - 22:25:42 - перейти к сообщению
amakk
http://www.php.net/manual/ru/function.return.php
7. amakk - 13 Апреля, 2014 - 22:32:11 - перейти к сообщению
Про 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
8. OrmaJever - 13 Апреля, 2014 - 22:38:09 - перейти к сообщению
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() и соответственно просить код нужно уже после неё.
9. amakk - 13 Апреля, 2014 - 22:47:29 - перейти к сообщению
В документации миллион функций и их параметров описано, пока читаешь забудешь что хотел сделать))
Да про 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 не надо поднимать над ней...
10. amakk - 14 Апреля, 2014 - 09:53:12 - перейти к сообщению
Разобрался, всем спасибо

 

Powered by ExBB FM 1.0 RC1