|
|
|
| Здравствуйте!
Вот в чем проблема, есть парсер RSS. Новости он режет при помощи регулярных выражений
$patt1 = "/<title>(.*?)<\/title>/ims";/*Заголовок новости*/
$patt2 = "/<description>(.*?)<\/description>/ims";/*тело новости*/
$patt3 = "/<pubDate>(.*?)<\/pubDate>/ims";/*дата публикации*/
$patt4 = "/<link>(.*?)<\/link>/ims";/*ссылка на сайт новостей*/
$patt5 = "/<yandex:full-text>(.*?)<\/yandex:full-text>/ims";/*полный текст новости*/
$patt6 = "/<author>(.*?)<\/author>/ims";/*автор новости*/
|
потом пихает все в массив
$i=0;
foreach ($array[1] as $v){
preg_match_all($patt1, $v, $text);
$news[$i]['title'] = $text[1][0];
preg_match_all($patt2, $v, $text);
$news[$i]['description'] = html_entity_decode($text[1][0]);
/*php автоматически переконвертил html символы поэтому вернем все обратно :)*/
preg_match_all($patt3, $v, $text);
$news[$i]['pubDate'] = $text[1][0];
preg_match_all($patt4, $v, $text);
$news[$i]['lind'] = urldecode($text[1][0]);
preg_match_all($patt5, $v, $text);
$news[$i]['fulltext'] = $text[1][0];
preg_match_all($patt6, $v, $text);
$news[$i]['author'] = $text[1][0];
$i++;
|
а затем, когда нам нужно вывести какую-то определенную новость, я делаю так
echo $news[$story]['fulltext'];
|
Но вот в чем вся проблема, все html-теги выводятся на экран, то есть текст статьи выглядит так "бла-бла-бла <br> бла-бла <p> и так далее...."
Как сделать что бы тэги работали а не просто выводились на экран?
Заранее благодарен. | |
|
|
|
|
|
|
|
для: Mefisto84
(28.01.2007 в 21:35)
| | Если у вас PHP 5 то htmlspecialchars_decode(), если нет то вот...
function html_decode ($html) {
return strtr ($html, array ('<' => '<', '>' => '>', '&' => "'", '"' => '"'));
}
|
| |
|
|
|