ホームページ > バックエンド開発 > PHPチュートリアル > preg_replace は src='/n1/images を src='images にどのように置き換えますか?

preg_replace は src='/n1/images を src='images にどのように置き換えますか?

WBOY
リリース: 2016-06-23 13:31:40
オリジナル
865 人が閲覧しました

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


回复讨论(解决方案)

$s =<<< TXT<img src="/n1/images"><img src="/x2/images1"><img src="/a/b/images2">TXT;echo preg_replace('#(?<=src=").*/([^"]+)#', '$1', $s);
ログイン後にコピー
ログイン後にコピー
<img src="images"><img src="images1"><img src="images2">
ログイン後にコピー
ログイン後にコピー

$s =<<< TXT<img src="/n1/images"><img src="/x2/images1"><img src="/a/b/images2">TXT;echo preg_replace('#(?<=src=").*/([^"]+)#', '$1', $s);
ログイン後にコピー
ログイン後にコピー
<img src="images"><img src="images1"><img src="images2">
ログイン後にコピー
ログイン後にコピー



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

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

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

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



其实就是将 替换成
意思是将 images前面的目录删除

$str="src='/n1sss/images'“;

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

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

$str="src='/n1sss/images'“;

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

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



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

<?php$s =<<< TXT<img src="/a/b/images/hehehahha">TXT;$pattern="/\/.*\/(.*?)\/(.*?)/";echo preg_replace($pattern, '$1/$2', $s);?>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

<?php$s =<<< TXT<img src="/a/b/images/hehehahha">TXT;$pattern="/\/.*\/(.*?)\/(.*?)/";echo preg_replace($pattern, '$1/$2', $s);?>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー



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

<?php$s =<<< TXT<img src="/a/b/images/hehehahha">TXT;$pattern="/\/.*\/(.*?)\/(.*?)/";echo preg_replace($pattern, '$1/$2', $s);?>
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー



还请再帮帮忙

$s =<<< TXT<img src="/n1/images"><img src="/x2/images1"><img src="/a/b/images2"><img src="/a/b/images2/hehehahha">TXT;$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);
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
<img src="images"><img src="images1"><img src="images2">
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

$s =<<< TXT<img src="/n1/images"><img src="/x2/images1"><img src="/a/b/images2"><img src="/a/b/images2/hehehahha">TXT;$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);
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
<img src="images"><img src="images1"><img src="images2">
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー



$s =<<< TXT<img src="/n1/images"><img src="/x2/images1"><img src="/a/b/images2"><img src="/a/b/images2/hehehahha">TXT;$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);
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
<img src="images"><img src="images1"><img src="images2">
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー



$s =<<< TXT<img src="/n1/images"><img src="/x2/images1"><img src="/a/b/images2"><img src="/a/b/images2/hehehahha">TXT;$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);
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
<img src="images"><img src="images1"><img src="images2">
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー



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

$str="src='/n1sss/images'“;

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

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




我都运行过的没问题,才发出来的啊
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート