当前位置:Gxlcms > PHP教程 > preg_replace怎么将src="/n1/images替换成src="images

preg_replace怎么将src="/n1/images替换成src="images

时间:2021-07-01 10:21:17 帮助过:23人阅读

preg_replace怎么将src="/n1/https://www.gxlcms.com/images替换成src="https://www.gxlcms.com/images
src="/n1/https://www.gxlcms.com/images 中的n1 可能是其他字符,比如说m2或者py等。
不懂正则替换,请指点。


回复讨论(解决方案)

$s =<<< TXTTXT;echo preg_replace('#(?<=src=").*/([^"]+)#', '$1', $s);

$s =<<< TXTTXT;echo preg_replace('#(?<=src=").*/([^"]+)#', '$1', $s);



谢谢版主,但如果是 怎么办?

替换成 类似的应该怎么做,

你的需求不明确,前后矛盾,到底保留文件本身,还是保留文件名以及他的父级目录。

你的需求不明确,前后矛盾,到底保留文件本身,还是保留文件名以及他的父级目录。



其实就是将 替换成
意思是将 https://www.gxlcms.com/images前面的目录删除

$str="src='/n1sss/https://www.gxlcms.com/images'“;

$zz="/src='\/.*\/(.*?)'/";

echo preg_replace($zz,'$1',$str);

$str="src='/n1sss/https://www.gxlcms.com/images'“;

$zz="/src='\/.*\/(.*?)'/";

echo preg_replace($zz,'$1',$str);



这个 $zz="/src='\/.*\/(.*?)'/"; 在PHP里面就有错误

TXT;$pattern="/\/.*\/(.*?)\/(.*?)/";echo preg_replace($pattern, '$1/$2', $s);?>

TXT;$pattern="/\/.*\/(.*?)\/(.*?)/";echo preg_replace($pattern, '$1/$2', $s);?>



谢谢版主的回答,可能我的问题说的不是很明确,
利用preg_replace怎么将https://www.gxlcms.com/images前面的目录删除掉
或者

TXT;$pattern="/\/.*\/(.*?)\/(.*?)/";echo preg_replace($pattern, '$1/$2', $s);?>



还请再帮帮忙

$s =<<< TXTTXT;$n = 0; //只留文件名echo preg_replace("#(?<=src=['\"]).*/((?:.*/){{$n}}[^'\"]+)#", '$1', $s);$n = 1; //保留一级目录echo preg_replace("#(?<=src=['\"]).*/((?:.*/){{$n}}[^'\"]+)#", '$1', $s);$n = 2; //保留二级目录echo preg_replace("#(?<=src=['\"]).*/((?:.*/){{$n}}[^'\"]+)#", '$1', $s);

$s =<<< TXTTXT;$n = 0; //只留文件名echo preg_replace("#(?<=src=['\"]).*/((?:.*/){{$n}}[^'\"]+)#", '$1', $s);$n = 1; //保留一级目录echo preg_replace("#(?<=src=['\"]).*/((?:.*/){{$n}}[^'\"]+)#", '$1', $s);$n = 2; //保留二级目录echo preg_replace("#(?<=src=['\"]).*/((?:.*/){{$n}}[^'\"]+)#", '$1', $s);



$s =<<< TXTTXT;$n = 0; //只留文件名echo preg_replace("#(?<=src=['\"]).*/((?:.*/){{$n}}[^'\"]+)#", '$1', $s);$n = 1; //保留一级目录echo preg_replace("#(?<=src=['\"]).*/((?:.*/){{$n}}[^'\"]+)#", '$1', $s);$n = 2; //保留二级目录echo preg_replace("#(?<=src=['\"]).*/((?:.*/){{$n}}[^'\"]+)#", '$1', $s);



$s =<<< TXTTXT;$n = 0; //只留文件名echo preg_replace("#(?<=src=['\"]).*/((?:.*/){{$n}}[^'\"]+)#", '$1', $s);$n = 1; //保留一级目录echo preg_replace("#(?<=src=['\"]).*/((?:.*/){{$n}}[^'\"]+)#", '$1', $s);$n = 2; //保留二级目录echo preg_replace("#(?<=src=['\"]).*/((?:.*/){{$n}}[^'\"]+)#", '$1', $s);



谢谢版主的回答,我有一个文件夹https://www.gxlcms.com/images,我就想保留https://www.gxlcms.com/images文件夹以及后面的目录,https://www.gxlcms.com/images后面的目录有几级是未知的。还请版主帮个忙

$str="src='/n1sss/https://www.gxlcms.com/images'“;

$zz="/src='\/.*\/(.*?)'/";

echo preg_replace($zz,'$1',$str);




我都运行过的没问题,才发出来的啊

人气教程排行