В endElement()
при выводе содержимого канала он вызывает printf("<dt>%s</dt><br><br>",htmlspecialchars(trim($description)));
Если вы удалите функцию htmlspecialchars
, тогда она должна отображать изображения и другие html должным образом вместо преобразования <
в<
и т. Д.
Учитывая этот код, не существует встроенного способа ограничения количества каналов.Nytimes может иметь опцию, которую вы можете передать как часть строки запроса, которая ограничивает количество результатов, но я не уверен в этом.
Быстрое решение проблемы - добавить глобальную переменную с именем $numShown
иличто-то в этом роде, и в начале endElement()
вы можете увеличивать его и проверять, находится ли оно выше некоторого значения, и если да, то просто return
перед всеми вызовами printf
для вывода элемента фида.
<?php
function endElement($parser, $name) {
global $insideitem, $tag, $title, $description, $link, $numShown;
if ($name == "ITEM") {
$numShown++;
if ($numShown >= 5) {
return ;
}
printf ( "<dt><b><a href='%s' target=new>%s</a></b></dt>", trim ( $link ), htmlspecialchars ( trim ( $title ) ) );
printf ( "<dt>%s</dt><br><br>", trim ( $description ) );
$title = "";
$description = "";
$link = "";
$insideitem = false;
}
}