2016-09-13 4 views
1

文字列があり、IMG以外のすべてのタグを削除するのにstrip_tags()関数を使用しましたが、まだIMG要素の隣にプレーンテキストがあります。ここでは、視覚的例strip_tags()を使用した後に文字列からプレーンテキストを削除する方法

$myvariable = "This text needs to be removed<a href='blah_blah_blah'>Blah</a><img src='blah.jpg'>" 

だから私は(私が欲しいものである)<img>タグ以外のすべてのタグを削除することができたPHP strip_tags()を使用。しかし、今はそれがテキストを削除していません。

左上のテキストを削除するにはどうすればよいですか?テキスト意志だけでなく

[ADDED詳細]タグの前またはタグの後に、常にどちらかの変数が実際に保持しているものだ

$description = 'crazy stuff<a href="https://websta.me/p/1337373806024694030_327078936"><img src="https://scontent.cdninstagram.com/t51.2885-15/e15/14287934_1389514537744146_673363238_n.jpg?ig_cache_key=MTMzNzM3MzgwNjAyNDY5NDAzMA%3D%3D.2"></a>'; 

。事前に

おかげで

+0

正規表現..しかし、私は追加の変数をチェックしてください – nogad

+0

可能文字列についての詳細を知る必要があります。ありがとうございます事前に – Carlitos

答えて

1

代わりの交換何かが、あなたは非常によくしたい値を抽出することができます

(<(\w+).+</\2>) 

preg_match()で使用するには、a demo on regex101.comを参照してください。 PHP、IN

<?php 
$regex = '~(<(\w+).+</\2>)~'; 
$string = 'crazy stuff<a href="https://websta.me/p/1337373806024694030_327078936"><img src="https://scontent.cdninstagram.com/t51.2885-15/e15/14287934_1389514537744146_673363238_n.jpg?ig_cache_key=MTMzNzM3MzgwNjAyNDY5NDAzMA%3D%3D.2"></a>here as well'; 

if (preg_match($regex, $string, $match)) { 
    echo $match[1]; 
} 
?> 
+0

imgタグ部分だけが必要な場合はどうすればいいですか? – Carlitos

+0

次に、パーサーまたは[** '()+])' **](https://regex101.com/r/mO9gM6/2)を使用して、 – Jan

0

strip_tagsを使用して、コードのあなたの全作品をご提示ください。

あなたは試すことができます:preg_replace('~.*(<img[^>]+>)~', '$1', $myvariable);

+0

私が追加した変数をチェックアウトします。ありがとうございます。 – Carlitos

+0

上記のpreg_replaceを使用している場合は、imgタグしか保持しません。 – antoni

関連する問題