我想用字符串的修改版本替换我在字符串中找到的每个链接,比如说:
快速的棕色狐狸跳过http://www.google.com/?v=abc和http://www.google.com/?v=x_y-z 我会替换(并修改)此链接,使其成为:http://www.google.com/v/abc和http://www.google.com/v/x_y-z
我知道如何使用preg_match_all找到所有链接($ pattern,$ text,$ out,PREG_SET_ORDER); 我可以使用preg_split等操作字符串 - 这是一次一个。
我正在寻找的结果是:
快速的棕色狐狸跳过http://www.google.com/v/abc和http://www.google.com/v/=x_y-z 但是,我如何匹配并替换所有这些?任何帮助将不胜感激。
答案 0 :(得分:2)
使用preg_replace
:
$str = preg_replace('/\?v=([^ ]*)/', '/v/$1', $str);
这假定您要匹配?v=
之后的所有内容并将其放在/v/
之后。如果情况并非如此,那么你必须更具体地了解模式是什么。
答案 1 :(得分:1)
使用g(全局)和i(不区分大小写)标记应该将搜索扩展到所有内容。
$string = preg_replace('/\?v=([^\s]+)/gi','/v/$1', $string);
这假设您的网址后面有某种类型的空格。