1

Petfinder APIから返される説明のすべてのHTMLタグを削除する必要がありますが、その方法がわかりません。

$data['description']返された説明を保持します。ソースファイルで見ることができるのはこのようなものです...

<div>some text that gets returned</div>

使ってみましたstrip_tags、使ってみましhtml_entity_decodeたが、タグが消えません!

説明を切り捨てられるように、タグを削除する必要があります。

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

$data['description'] = (string)$pet->description;

$description = $data['description'];
$description = htmlentities($description);
$description = html_entity_decode($description);
$description = strip_tags($description);

$description = substr($data['description'],0,300);
$description = substr($description,0,strrpos($description,' '));
$description = $description."...";

echo "<span style='text-align: justify; margin: 10px 0px;'>".$description."</span>";
4

2 に答える 2

2

問題は、最初に実行することhtmlentitiesです。この後strip_tagsはもう動作しません。

単に行う:

$test = '<div>some text that gets returned</div>';
echo strip_tags($test);

筋金入りの方法:

$doc = new DOMDocument();
$doc->loadHTML('<div>some text that gets returned</div>');
$items = $doc->getElementsByTagName('div');
$content = $items->item(0)->nodeValue;
echo $content;
于 2013-03-06T01:48:47.040 に答える
2

問題は、処理の途中で元の入力を再び使用していることです。

$description = $data['description'];
$description = htmlentities($description);
$description = html_entity_decode($description);
$description = strip_tags($description);

$description = substr($data['description'],0,300);
                      ^^^^^^^^^^^^^^^^^^^^ All previous changes undone!
$description = substr($description,0,strrpos($description,' '));
$description = $description."...";

それとは別に、@ redreggaeは正しいです、あなたはただ必要strip_tagsです。

于 2013-03-06T01:59:47.083 に答える