11

私は文字列を持っています:

<p justify;"="">Vers­lo cent­rai Lie­tu­vos ne­kil­no­ja­mo­jo turto plėt­ros aso­cia­ci­jos kon­kur­se  ...</p>

タグを削除したい

<p justify;"=""></p>

私のコード:

$content = strip_tags($text, '<p>');

しかし、私は空の文字列を取得します:string(0) ""、私が間違っていることは何ですか?

4

6 に答える 6

19

そのように入れてみてください

$content = strip_tags($text);

または、次のような正規表現で実行できます。

$content = preg_replace('/<[^>]*>/', '', $text);

これにより、文字列内のタグを$content = strip_tags($text, '<p>');許可しています。<p>

詳細については、リンクhttp://php.net/manual/en/function.strip-tags.phpを参照してください。

于 2013-03-09T09:19:30.073 に答える
5

HTML のフォーマットが適切でないため、おそらく独自の正規表現を記述してタグを削除するか、タグを削除する前に HTML をクリーンアップする必要があります。

これを試して、タグの「ように見える」すべてを削除できます。

$str = preg_replace("/<.*?>/", " ", $str);
于 2013-03-09T09:18:54.053 に答える
4

これにより、タグ、ASCII、改行、純粋なテキストなど、すべてが削除されます。

strip_tags(preg_replace('/<[^>]*>/','',str_replace(array("&nbsp;","\n","\r"),"",html_entity_decode($YOUR_STRING,ENT_QUOTES,'UTF-8'))));
于 2015-10-15T09:50:35.517 に答える
4

preg_replace()HTML が適切にフォーマットされていないため、アプローチを選択できます。

$text = '<p justify;"="">Vers­lo cent­rai Lie­tu­vos ne­kil­no­ja­mo­jo turto plėt­ros aso­cia­ci­jos kon­kur­se ... </p>';
$content = preg_replace('/<[^>]*>/', '', $text); 
var_dump($content);
// string(108) "Vers­lo cent­rai Lie­tu­vos ne­kil­no­ja­mo­jo turto plėt­ros aso­cia­ci­jos kon­kur­se ... "

コードパッドの例

strip_tags () docsには次のように書かれています: strip_tags() は実際には HTML を検証しないため、タグが部分的または壊れていると、予想よりも多くのテキスト/データが削除される可能性があります。

また、2 番目のパラメーターは for$allowable_tagsです。

于 2013-03-09T09:20:17.213 に答える
1

PHP 7.4.0 から、strip_tags() は代わりに、許容されるタグを持つ配列を受け入れます。

次にこれ:

<?php

$html = '<div id="my-div"><p>text<strong><a href="#link"></a></strong></p></div>';

echo strip_tags($html, ['p', 'a']); //accept p and a tags

これを返します:

<p>text<a href="#link"></a></p>

許可されていないタグのみが削除されていることに注意してください。

于 2020-05-15T21:45:31.647 に答える