2010-12-13 8 views
1

からテキストを削除します。私は、次のコードはエコーされているPHPの文字列

[caption id="attachment_13" align="alignnone" width="235" caption="Event 1"] 
    <img src="image.png" /> 
[/caption] 

は私だけimgタグがエコーされたいです。 私は[caption]タグが実際には適切なHTMLタグではないため、削除方法はわかりません。文字列からテキストを削除する関数はありますか?

str_replaceとなりますか?

答えて

2

を試してみて、正規表現は、HTMLの解析のために推奨されません。

<?php 

$s = '[caption id="attachment_13" align="alignnone" width="235" caption="Event 1"] 
    <img src="image.png" /> 
[/caption] '; 

if (preg_match('/<img[^>]*>/', $s, $matches)) echo $matches[0]; 

?> 

出力:あなたはちょうどあなたが使用することができ、迅速な何か、したい場合でも、

<img src="image.png" /> 
+0

これは素晴らしい結果でした。問題は、文字列がWordpressによって解析されていないことでした。キャプションタグを解析するには、このコードを追加する必要があります: 'apply_filters( 'the_content'、$ value);' – hohner

0
preg_match('/\<img src=[^\>]+\>/', $value, $imgTag); 
echo $imgTag[0]; 
+0

それだけで1件の試合の利用があるかどう'LL出力 'Array'ので、 'echo $ imgTag [0];' – stealthyninja

0

通常
$str = "[caption id="attachment_13" align="alignnone" width="235" caption="Event 1"] 
    <img src="image.png" /> 
[/caption] "; 
$arr = explode ('<img' , $str); 
$arr2 = explode ('>' , $arr[1]); 

echo '<img' . $arr2[0] . '>'; 
0

をただし、<>[]を変更してstrip_tags

$replaceThis = array('[', ']'); 
$withThis = array('<', '>'); 
echo strip_tags(str_replace($replaceThis, $withThis, $value), '<img>'); 
0

を行うことができます正規表現を試してみてください: http://www.php.net/manual/en/function.preg-replace.php

その何かのような

何かが(私は長い長い長い時間のxDので、PHPで動作しない)最小の適応で動作します:

<?php 
$pattern = '/.*(<img[^>]+)>.*/'; 
$remplacement = '$1'; 
echo preg_replace($pattern, $replacement, $value); 
?> 
関連する問題