Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Curl вывод данных


Автор: sanitarn 22.8.2016, 14:42
Всем привет, давно не кодил, а так как не прогер, приходится все мануалить, да снова изучать.
Так вот вопрос имею функцию обращение к стороннему сайту, забираю инфу, через simple xml разбираю после.
Вопрос, как мне вывести ответ курла например по кодировке на сервере, код ответа на сервере? У меня что-то не получается.
Как вариант писать 2ю функцию для обращения к серверу через курл, но это точно тот еще кастыль. 

Код

function get($url) {
     $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL,$url);
        curl_setopt($ch, CURLOPT_HEADER,1);
        curl_setopt($ch, CURLOPT_NOBODY,0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.1) Gecko/2008070208');
        curl_setopt($ch, CURLOPT_TIMEOUT, 30);
        curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);        
       // $charset = curl_getinfo($ch, CURLINFO_HTTP_CODE,1);
        
      //  curl_setopt($ch, CURLOPT_PROXY, $proxy);
        $ss=curl_exec($ch);
        

        curl_close($ch);
        $html= str_get_html($ss); 
        return  $html;
       
}

Автор: ksnk 22.8.2016, 16:50
Вроде curl_getInfo должен все правильно выдавать.
http://php.net/manual/ru/function.curl-getinfo.php - ключик CURLINFO_HEADER_OUT выдаст все получаемые заголовки, CURLINFO_CONTENT_TYPE, вероятно и будет содержать информацию о кодировке.

Автор: sanitarn 22.8.2016, 16:57
Цитата(ksnk @  22.8.2016,  16:50 Найти цитируемый пост)
Вроде curl_getInfo должен все правильно выдавать.
http://php.net/manual/ru/function.curl-getinfo.php - ключик CURLINFO_HEADER_OUT выдаст все получаемые заголовки, CURLINFO_CONTENT_TYPE, вероятно и будет содержать информацию о кодировке. 


Так, если писать так:
Код

function get($url) {
     $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL,$url);
        curl_setopt($ch, CURLOPT_HEADER,1);
        curl_setopt($ch, CURLOPT_NOBODY,0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.1) Gecko/2008070208');
        curl_setopt($ch, CURLOPT_TIMEOUT, 30);
        curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);        
       $charset = curl_getinfo($ch, CURLINFO_HTTP_CODE,1);
        
      //  curl_setopt($ch, CURLOPT_PROXY, $proxy);
        $ss=curl_exec($ch);
        
        curl_close($ch);
        $html= str_get_html($ss); 
        return  $html;
       
}
echo  $charset;


То ничего не выдаст, потому что переменная внутри функции. Может я что-то до конца понять не могу?

Автор: sanitarn 22.8.2016, 18:09
Все разобрался, либо глобальную переменную нужно сделать, либо в массив разбить данные.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)