php / curl не возвращает правильные данные - PullRequest
0 голосов
/ 31 декабря 2010

Вот небольшой пример тестового кода, который просто переходит на

http://www.un.org/apps/news/story.asp?NewsID=37180&Cr=Haiti&Cr1=

и загружает указанную веб-страницу.

<?php
    $url = "http://www.un.org/apps/news/story.asp?NewsID=37180&Cr=Haiti&Cr1=";
    $curl = curl_init();    // initialize curl handle
    curl_setopt($curl, CURLOPT_URL, $url); // set url to post to
    curl_setopt($curl, CURLOPT_FAILONERROR, 1);
    curl_setopt($curl, CURLOPT_COOKIESESSION, TRUE); // since we reuse now
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);// allow redirects
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // return into a variable
    curl_setopt($curl, CURLOPT_TIMEOUT, 20); // times out after 20 seconds
    curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 5.1; U; en; rv:1.8.0) Gecko/20060728 Firefox/1.5.0" );
    $result = curl_exec($curl); // run the whole process
    print $result;

Когда я смотрюв результате, однако, это не совсем то, что я хочу.Если вы посмотрите на результаты для строки

«Чиновники Организации Объединенных Наций по гуманитарным вопросам призывают к массовой мобилизационной деятельности? На Гаити»

вы можете увидеть два вопросительных знака, окружающих текст «массивная мобилизация»деятельности ".

Если вы переходите на реальный веб-сайт, вопросительные знаки отображаются в виде пары левых и правых кавычек, и это отражается при просмотре исходного кода с сайта ...

«Чиновники Организации Объединенных Наций по гуманитарным вопросам призывают к« массовой мобилизационной деятельности »на Гаити»

Я хотел бы знать, как я могу взять двойные кавычки, а не вопросительные знаки, которые явидя.

Все предложения с благодарностью приняты.

И счастливого нового года всем вам

Ответы [ 2 ]

1 голос
/ 31 декабря 2010

Ничего общего с PHP, никакого отношения к curl, даже не ошибка.Упомянутые вами «вопросительные знаки» - это символы ASCII 0x93 и 0x94: открытые двойные кавычки и закрытые двойные кавычки.Я не парень по PHP, но если вы хотите, чтобы обычные двойные кавычки

str_replace(array(chr(0x93), chr(0x94)),'"',$result) 

должны исправить вас.

0 голосов
/ 31 декабря 2010

Похоже, что "в приведенном выше примере это специальный символ, а не обычный".просмотреть исходный код страницы и скопировать предыдущий источник в блокнот, если он покажет вам?вместо "это означает, что это специальный символ, и вам нужно выяснить точный код для этого символа

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...