Php 从绳子上剪下来,放在同一根绳子的另一个位置上
我有一个超过1000个符号的字符串,我需要找到子字符串,从当前位置将其剪切,然后放入同一字符串上的另一个pisition 顺便说一句,对不起,我的英语不好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
//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。