0

私はプロジェクトに取り組んでいますが、「span>」がテキストの先頭にも印刷されるという問題に直面しています。上記のタグを除いて、すべてのタグをうまく削除しようとしました。

これが私のphpコードです

      <p>
        <?php
         $desc = $top_news['headline_des'];
         $aa = preg_replace( '/style=(["\'])[^\1]*?\1/i', '', $desc, 2 );
             if(strlen($top_news['headline_des'])>100)
                {
                $description = substr($aa, 1 ,850)."...";

                    }else{
                    $description = $aa;
                     }

                  echo strip_tags($description);
        ?>
    </p> 

これが出力です

スパン>IPORには、共和党国際研究所(IRI)と米国国際庁があります。

4

4 に答える 4

1

問題はsubstr($aa, 1 ,850)通話です。substr1 ではなく位置 0 から始まるため、次のようになります。

Input: <span>Foobar</span>
substr($input, 1, 850)
Output: span>Foobar</span>

substr最初のイワナを喜んで切り落とします。したがって、はタグ全体としてstrip_tags認識せず、そのままにしておきます。span>

修正:を使用しsubstr($aa, 0, 850)ます。

于 2013-01-24T10:56:43.160 に答える
0
 $text = preg_replace("/<.+?>/", "", $text);

このようなものは、$text変数内のすべてのタグを削除する必要があります。

うまくいかない場合は、タグを削除したい最初のテキストが正しく形成されているかどうかを確認する必要があります。たとえば aspan >はタグではないので削除されませんが、 a<span >は問題なく削除されます。

于 2013-01-24T10:34:39.827 に答える
0

タグを削除するためだけにstrip_tags を使用できます

preg_replaceを使用

$desc = $top_news['headline_des'];
$search = array(
'@<style[^>]*?>.*?</style>@siU',
'@<[\/\!]*?[^<>]*?>@si'            
);

echo $pregReplacedContent = preg_replace($search, "", $aa);
于 2013-01-24T10:23:36.763 に答える
0
$intro = ereg_replace("[</*>]", "", $intro);
于 2013-01-24T10:22:58.153 に答える