Удалить все теги html из строки php
Я хочу отобразить первые 110 символов записи в базе данных. Довольно легко:
<?php echo substr($row_get_Business['business_description'],0,110) . "..."; ?>
Но в приведенной выше записи есть html-код, который был введен клиентом. Таким образом, он отображает:
<p class="Body1"><strong><span style="text-decoration: underline;">Ref no:</span></strong> 30001<strong></stro...
Очевидно, ничего хорошего.
Я просто хочу вычеркнуть весь html-код, поэтому мне нужно удалить все между < и > из записи db THEN отображает первые 100 символов.
Любые идеи кто-нибудь?
Ответы
Ответ 1
использовать strip_tags
$text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>';
echo strip_tags($text); //output Test paragraph. Other text
<?php echo substr(strip_tags($row_get_Business['business_description']),0,110) . "..."; ?>
Ответ 2
Используйте PHP функцию strip_tags().
Например:
$businessDesc = strip_tags($row_get_Business['business_description']);
$businessDesc = substr($businessDesc, 0, 110);
print($businessDesc);
Ответ 3
Удалите все теги HTML из строки PHP с содержимым!
Скажем, у вас есть строка, содержащая тег привязки, и вы хотите удалить этот тег с контентом, тогда этот метод будет полезен.
$srting = '<a title="" href="/index.html"><b>Some Text</b></a>
Lorem Ipsum is simply dummy text of the printing and typesetting industry.';
echo strip_tags_content($srting);
function strip_tags_content($text) {
return preg_replace('@<(\w+)\b.*?>.*?</\1>@si', '', $text);
}
Вывод:
Lorem Ipsum - просто фиктивный текст печатной и печатной промышленности.
Ответ 4
используйте это регулярное выражение: /<[^<]+?>/g
$val = preg_replace('/<[^<]+?>/g', ' ', $row_get_Business['business_description']);
$businessDesc = substr(val,0,110);
из вашего примера должен оставаться: Ref no: 30001
Ответ 5
Для меня это лучшее решение.
function strip_tags_content($string) {
// ----- remove HTML TAGs -----
$string = preg_replace ('/<[^>]*>/', ' ', $string);
// ----- remove control characters -----
$string = str_replace("\r", '', $string);
$string = str_replace("\n", ' ', $string);
$string = str_replace("\t", ' ', $string);
// ----- remove multiple spaces -----
$string = trim(preg_replace('/ {2,}/', ' ', $string));
return $string;
}
Ответ 6
На всякий случай fgetss()
читает файл в строке, удаляя/удаляя все теги html и php.
Ответ 7
В Laravel вы можете использовать следующий синтаксис
@php
$description='<p>Rolling coverage</p><ul><li><a href="#" onclick="location.href='http://xys.com'; return false;">Brexit deal: May admits she would have </a><br></li></ul></p>'
@endphp
{{ strip_tags($description)}}