Intereting Posts
Symfony2 / Doctrine2 – Escaping специальный символ в пароле граница слова regex не работает в ut8 на некоторых серверах Запрос MySQL «НЕ В» не работает Доступ к супер-объекту CodeIgniter из внешнего php-скрипта вне установки codeigniter Laravel .htaccess переписать правило преобразования в IIS Символы, разрешенные в ключах php-массива? как изменить действие формы ссылки в соответствии с `<option>`? все комбинации строк фиксированной длины, основанные на кодировке Радиус / ближайшие результаты – API Карт Google Как преобразовать строку, которая выглядит как шестнадцатеричный номер, в фактический шестнадцатеричный номер в php? Как использовать «корневое» пространство имен php? Вычтите одну секунду из заданного времени Как умножить число до достижения однозначных чисел и подсчета числа? Как создать запрос SOAP PHP с несколькими пространствами имен TableGateway с несколькими таблицами FROM

Почему strip_tags не работает в PHP?

У меня есть следующий код:

<?php echo strip_tags($firstArticle->introtext); ?> 

Где $ firstArticle – объект stdClass:

 object(stdClass)[422] public 'link' => string '/maps101/index.php?option=com_content&view=article&id=57:greenlands-newest-iceberg&catid=11:geography-in-the-news' (length=125) public 'text' => string 'GREENLAND'S NEWEST ICEBERG' (length=26) public 'introtext' => string '<p>A giant chunk of ice calved off the Petermann Glacier on the northwest side of Greenland this summer. At nearly 100 square miles (260 sq. km) in size, four times the size of Manhattan, th' (length=206) public 'date' => object(JDate)[423] public '_date' => int 1284130800 public '_offset' => int 0 public '_errors' => array empty 

Вы можете видеть, что $ firstArticle-> introtext относится к строке:

« <p> Гигантский кусок льда отлетел от ледника Петерманн на северо-западной стороне Гренландии этим летом. Площадь почти в 100 квадратных километров (260 кв. км), в четыре раза превышающая размер Манхэттена,

Тег <p> является проблемой для меня в этом приложении, однако strip_tags абсолютно отказывается удалить его, и я не могу понять, почему. Я фактически отказался от strip_tags и попытался сделать preg_replace вместо этого с regex /<(.|\n)*?>/:

 preg_replace('/<(.|\n)*?>/', '', $firstArticle->introtext); 

Но это тоже не сработало! Как я могу удалить все теги HTML (совпадающие или нет) из этой строки при ее выводе?

Solutions Collecting From Web of "Почему strip_tags не работает в PHP?"

пытаться:

 <?php echo strip_tags(html_entity_decode($firstArticle->introtext)); ?> 

очень любопытно, что strip-tags не работает ….

возможно, ваш «<p>» закодирован в htmlentity? например "& lt; p & gt;" (посмотрите исходный код страницы)

otehrwise это заменит все теги, также закодированные htmlentity, но почти очевидно, что этот p-тег просто закодирован в htmlentity, поэтому сначала попробуйте это …

 preg_replace('/(?:<|&lt;).*?(?:>|&gt;)/', '', $firstArticle->introtext); 

В моем случае я должен использовать htmlspecialchars_decode($str); , html_entity_decode($firstArticle->introtext) , похоже, не работает для меня.

Иногда мне приходится сначала использовать htmlentities .

  $txt = htmlentities($txt, null, 'utf-8'); $txt = htmlspecialchars_decode($txt);