从php字符串中删除所有html标签

时间:2013-02-04 09:47:04

标签: 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代码,所以我需要删除&lt;之间的所有内容。和&gt;从数据库条目THEN显示前100个字符。

任何想法?

10 个答案:

答案 0 :(得分:113)

使用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) . "..."; ?>

答案 1 :(得分:15)

使用PHP的strip_tags() function

例如:

$businessDesc = strip_tags($row_get_Business['business_description']);
$businessDesc = substr($businessDesc, 0, 110);


print($businessDesc);

答案 2 :(得分:10)

从包含内容的PHP字符串中删除所有HTML标记!

假设您有字符串包含锚标记,并且您想要使用内容删除此标记,那么此方法将有所帮助。

$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只是印刷和排版行业的虚拟文本。

答案 3 :(得分:6)

使用此正则表达式:/<[^<]+?>/g

$val = preg_replace('/<[^<]+?>/g', ' ', $row_get_Business['business_description']);

$businessDesc = substr(val,0,110);
您的示例中的

应保留:Ref no: 30001

答案 4 :(得分:1)

对我来说这是最好的解决方案。

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; 

}

答案 5 :(得分:0)

以防万一,fgetss()在一行中删除/剥离所有html和php标签的文件中读取文件。

答案 6 :(得分:0)

在laravel中,您可以使用以下语法

 @php
   $description='<p>Rolling coverage</p><ul><li><a href="http://xys.com">Brexit deal: May admits she would have </a><br></li></ul></p>'
 @endphp
 {{  strip_tags($description)}}

答案 7 :(得分:0)

mismatched types expected fn pointer, found closure note: expected fn pointer `fn(U) -> V` found closure

或者如果您有来自数据库的内容;

<?php $data = "<div><p>Welcome to my PHP class, we are glad you are here</p></div>"; echo strip_tags($data); ?> <?php $data = strip_tags($get_row['description']); ?>

答案 8 :(得分:0)

$string = <p>Awesome</p><b> Website</b><i> by Narayan</i>. Thanks for visiting enter code here;
$tags = array("p", "i");

echo preg_replace('#<(' . implode( '|', $tags) . ')(?:[^>]+)?>.*?</\1>#s', '', $string);

尝试一下

答案 9 :(得分:0)

从 HTML 标签中去除字符串:

<?php
echo strip_tags("Hello <b>world!</b>");
?>

从 HTML 标签中去除字符串,但允许使用标签:

<?php
         echo strip_tags("Hello <b><i>world!</i></b>","<i>");
?>