Я получаю искаженные цитаты при получении заголовков RSS-каналов с помощью cURL и php - PullRequest
0 голосов
/ 02 апреля 2011

Я использую cURL, чтобы получить RSS-канал из моего собственного блога WordPress, чтобы отобразить его как боковую панель «ленты», и когда я получаю заголовки, все кавычки выглядят так:

Код cURLЯ использую, чтобы получить это:

$ch = curl_init($feed_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 0);
curl_setopt($ch, CURLOPT_FAILONERROR, true);
curl_setopt($ch, CURLOPT_ENCODING, "");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($ch, CURLOPT_TRANSFERTEXT, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
curl_setopt($ch, CURLOPT_HEADER, false);
$content = curl_exec($ch);

Странная вещь в том, что на моем локальном сервере, он выводит кавычки нормально, но на удаленном, он возвращает этот seq.

Код, который я использую для распечатки «Канала», выглядит следующим образом:

$x = new SimpleXmlElement($content);
    foreach ($x->channel->item as $entry) {
        echo "<li class='newsLI'><a href='$entry->link' title='$entry->title'>" . $entry->title . "</a></li>";
    }

и то, что я получаю, хорошо видно в левой нижней части экрана здесь: http://www.inlinkz.com

Есть идеи, с чего начать искать ответ?

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 30 октября 2013

Три строки кода ниже работают для меня, и я думаю, что они должны работать глобально.

  1. $settings['rss_strip']="1200";

  2. $row['summary'] = $admin->partial($row['summary'],$settings['rss_strip'],0);

  3. $html .= '<description>'. $this->superhtmlentities( strip_tags($row['summary'] ) ).'</description>\n';

Очень простой трюк заключается в объявлении переменной в первом выражении кода, которое при вызове во втором иТретий (function strip_tags) оператор кода показывает корректную (в моем случае) подачу rss с символами Юникода любой длины. Примечание: Важно значение, которое вы назначаете для $settings['rss_strip'].Чем больше значение, тем больше вероятность УСПЕХА.

0 голосов
/ 02 апреля 2011
  1. У вас нет DOCTYPE определенного
  2. Вы не устанавливаете content-type

страницы. Добавление следующих строк в ваш код решило вашу проблему.проблема (по крайней мере, на моей машине;)):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

(конечно, это должно быть установлено в любое определение, которое вы на самом деле используете)

<meta http-equiv="content-type" content="text/html;charset=utf-8" />

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