我回复了以下代码:
[caption id="attachment_13" align="alignnone" width="235" caption="Event 1"]
<img src="image.png" />
[/caption]
我只希望回显img
标记。
我已尝试使用<?php echo strip_tags($value, '<img>'); ?>
,但因为[caption]标签实际上不是正确的HTML标记,所以我不知道如何删除它。是否有一个函数可以从字符串中删除文本?
str_replace
会有效吗?
答案 0 :(得分: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" />
答案 1 :(得分:0)
preg_match('/\<img src=[^\>]+\>/', $value, $imgTag);
echo $imgTag[0];
答案 2 :(得分: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] . '>';
答案 3 :(得分:0)
但是,您可以使用[]
更改<>
,然后执行strip_tags
$replaceThis = array('[', ']');
$withThis = array('<', '>');
echo strip_tags(str_replace($replaceThis, $withThis, $value), '<img>');
答案 4 :(得分:0)
尝试一些正则表达式: http://www.php.net/manual/en/function.preg-replace.php
类似的东西应该以最小的适应性工作(我很长时间没有使用PHP了xD):
<?php
$pattern = '/.*(<img[^>]+)>.*/';
$remplacement = '$1';
echo preg_replace($pattern, $replacement, $value);
?>