Php 从绳子上剪下来,放在同一根绳子的另一个位置上

Php 从绳子上剪下来,放在同一根绳子的另一个位置上,php,Php,我有一个超过1000个符号的字符串,我需要找到子字符串,从当前位置将其剪切,然后放入同一字符串上的另一个pisition 顺便说一句,对不起,我的英语不好 //I have $string = "< p>< img class='classes' src='https://example.com/img/img.jpg' atl='img'>< /p>"; // I need $string = "< p>< img class='clas

我有一个超过1000个符号的字符串,我需要找到子字符串,从当前位置将其剪切,然后放入同一字符串上的另一个pisition

顺便说一句,对不起,我的英语不好

//I have
$string = "< p>< img class='classes' src='https://example.com/img/img.jpg' atl='img'>< /p>";

// I need
$string = "< p>< img class='classes' data-src='https://example.com/img/img.jpg' src=' ' atl='img'>< /p>";
//我有
$string=“

”; //我需要 $string=“

”;

我需要在$string src中查找,剪切链接并将其放置到相同的位置,但在data src中,您可以使用regex,方法是使用
preg\u replace\u回调函数,如:

$string = "<p><img class='classes' src='https://example.com/img/img.jpg' atl='img' /></p>";

preg_replace_callback('#\s+src(\s+)?=(\s+)?(\'|")([^\'"]+)(\'|")#', function($m){
    return ' data-src="'.$m[4].'" src=""';
}, $string);

echo $string;
$string=“

”; preg#u replace#u回调('#\s+src(\s+)=(\s+)(\'|“)([^\']”]+)(\'|“)”)(\'|“)”),函数($m){ 返回'data src=“”。$m[4]”“src=“”; },$string); echo$字符串;
你为什么不把'src'改为'data src'?根据@sorayadagon的建议,你可以做
$string=str_replace(“src=”,“data src=”,$string);
@Claudio最好用
“data src=”替换
。否则,如果已经存在数据src属性,它可能会将
data src='
转换为
data data src='
。@Michal Hynčica和Claudio非常感谢,我认为我将使用此解决方案。不要使用正则表达式来解析html-@Bradley4这样的基本内容不会有什么坏处。多年来,Regex一直用于解析短代码和bbcode。