Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 更换IMG标签_Php_Regex - Fatal编程技术网

Php 更换IMG标签

Php 更换IMG标签,php,regex,Php,Regex,我不太擅长这个正则表达式字符串替换,但我认为这个问题可以用它来解决 我想替换这个: <a href="http://www.example.com"> <img alt="" class="aligncenter size-full wp-image-112" height="300" src="http://www.example.comsample1.png" title="sample1" width="300" /></a> 为此: <p

我不太擅长这个正则表达式字符串替换,但我认为这个问题可以用它来解决

我想替换这个:

<a href="http://www.example.com">
<img alt="" class="aligncenter size-full wp-image-112" height="300" src="http://www.example.comsample1.png" title="sample1" width="300" /></a>

为此:

<p style="text-align:center;"><a href="http://www.example.com">
<img alt="" class="aligncenter size-full wp-image-112" height="300" src="http://www.example.comsample1.png" title="sample1" width="300" /></a></p>
<p style="text-align:center;">
<img alt="" class="aligncenter size-full wp-image-112" height="300" src="http://www.example.comsample1.png" title="sample1" width="300" /></p>

而这(如果没有给出链接):


为此:

<p style="text-align:center;"><a href="http://www.example.com">
<img alt="" class="aligncenter size-full wp-image-112" height="300" src="http://www.example.comsample1.png" title="sample1" width="300" /></a></p>
<p style="text-align:center;">
<img alt="" class="aligncenter size-full wp-image-112" height="300" src="http://www.example.comsample1.png" title="sample1" width="300" /></p>

我怎样才能做到这一点?(搜索关键字为'class=“aligncenter',如果IMG标记中存在此项,则我需要替换)

可能有许多IMG或标签需要更换,而不仅仅是一个


非常感谢!!!

您可能需要两个regexp,一个用于img(确保没有
,您需要负前瞻断言,因此它将如下所示:

$text = preg_replace( '~<img alt="" class="aligncenter size-full wp-image-112"([^<>]+)/>\s*(?!</a)~mi', '<p style="text-align:center;">\0</p>', $text);

您可能需要两个regexp,一个用于img(确保没有
,您需要负前瞻断言,因此它将如下所示:

$text = preg_replace( '~<img alt="" class="aligncenter size-full wp-image-112"([^<>]+)/>\s*(?!</a)~mi', '<p style="text-align:center;">\0</p>', $text);

如果你不擅长某项技术,你不应该在没有考虑到更简单选项的情况下选择它。请参阅一些相关链接。如果你不擅长某项技术,你不应该在没有考虑到更简单选项的情况下选择它。请参阅一些相关链接。非常感谢你的帮助!:)如果我只想要“类=”aligncenter’在比赛中,我需要更改什么?(其余的可能会有所不同)@vorian尝试玩一会儿,这样你就会习惯了:)但基本上你只需要将
“aligncenter size full wp-image-112”
替换为
“[^”]*aligncenter[^”]*
。(当你不需要更多的帮助时,把这个答案标记为答案)我会试试的!谢谢Vyktor!;)非常感谢您的帮助!:)如果我只想在比赛中使用'class=“aligncenter”,我需要更改什么?(其余的可能会有所不同)@vorian尝试使用它一段时间,这样你就会习惯了:)但基本上你只需要将
“aligncenter size full wp-image-112”
替换为
“[^”]*aligncenter[^”]*
。(当您不需要更多帮助时,请将此答案标记为答案)我会尝试!谢谢Vyktor!;)