90

データベースエントリの最初の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エントリから<と>の間のすべてを削除してから、最初の100文字を表示する必要があります。

誰かアイデアはありますか?

4

9 に答える 9

160

使用する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) . "..."; ?>
于 2013-02-04T09:48:55.017 に答える
19

PHPのstrip_tags()関数を使用します。

例えば:

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


print($businessDesc);
于 2013-02-04T09:48:40.600 に答える
13

コンテンツを含む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は、印刷および植字業界の単なるダミーテキストです。

于 2016-09-04T18:26:36.357 に答える
7

この正規表現を使用します。/<[^<]+?>/g

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

$businessDesc = substr(val,0,110);

あなたの例からとどまる必要があります:Ref no: 30001

于 2013-02-04T09:50:44.530 に答える
2

私にとってこれが最善の解決策です。

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; 

}
于 2019-08-07T08:08:57.653 に答える
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)}}
于 2018-12-10T17:18:32.023 に答える
0

<?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']); ?> <?=substr($data, 0, 100) ?><?php if(strlen($data) > 100) { ?>...<?php } ?>

于 2020-09-29T09:39:34.040 に答える
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);

これを試して

于 2020-12-05T12:28:49.940 に答える
0

HTMLタグから文字列を削除します。

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

HTMLタグから文字列を削除しますが、タグの使用を許可します。

<?php
         echo strip_tags("Hello <b><i>world!</i></b>","<i>");
?>
于 2021-04-18T09:53:24.540 に答える