отфильтровать html символы

Статус
В этой теме нельзя размещать новые ответы.

dotsenko

Постоялец
Регистрация
27 Дек 2006
Сообщения
236
Реакции
134
:)есть граббер телепрограммы
все хорошо парсит проблема в том что выводит сылки на программы
в виде <a href="/tv/events/14598584/" >Понять. Простить</a>
как можно сделать что бы не показывало в браузере
<a href="/" ></a>
а просто было 'Понять. Простить'.
 
:(не получается можете хотя бы пример привести запутался
function block_tags($string){
$replaced_string = str_ireplace('<','&lt',$string);
$replaced_string = str_ireplace('>','&gt',$replaced_string);
return $replaced_string;
}

echo block_tags('<a href="/" ></a>'); //Returns &ltb&gtHEY&lt/b&gt
 
Так смотри же в примерах по ссылке от ewg777
PHP:
<?php
$text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>';
echo strip_tags($text);
echo "\n";

// Разрешить теги <p> и <a>
echo strip_tags($text, '<p><a>');
?>
А в твоем коде пиши не
Код:
str_ireplace('<','&lt',$string);
а
Код:
str_ireplace('<','&lt;',$string);
Точки с запятой не хватает после символа.
 
Так. хватит заниматься ерундой.
Если тебе нужно почистить ссылки и вывести их как текст, то тебе хватит strip_tags. А если надо убрать <> и кавычки (например вывод в составе xml/html) то тут и нужен htmlspecialchars.

PHP:
$text="<a href=\"/tv/events/14598584/\" >Понять. Простить</a>"; //твоя ссылка в телепрограмме
$text=strip_tags($text);  //удалит все тэги
$text=htmlspecialchars($text); //преобразует все левые символы.
Да, htmlspecialchars лучше чем str_replace, но в твоем случае вообще не нужен, потому что в выводе телепограммы все эти знаки уже идут в виде &amp;
Поэтому не морочь себе голову. Одного strip_tags тебе хватит. И не надо никаких тегов разрешать. Тебе нужен чистый текст. Только если ты решишь оставить часть исходного форматирования, только тогда (возможно, зависит от задачи использвания) м нужен будет htmlspecialchars.
 
PHP:
$str = '<a href="/tv/135">Понять. Простить</a>';

$cut = str_replace ('<a>', '', $str);

$cut = str_replace ('</a>', '', $cut);

$cut = preg_replace ('#<a\s.*?>#Dis', '', $cut);

$cut = preg_replace ('#</a\s.*?>#Dis', '', $cut);

echo $cut; // Понять. Простить
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху