尝试使用其他定界符,例如
#:
preg_replace('#http://|ftp://#', 'https://', $value);
或(不建议使用)对正则表达式中每次出现的定界符进行转义:
preg_replace('/http://|ftp:///', 'https://', $value);
另外,您正在搜索
http:///ftp://的确没有太大意义的模式,可能就是您的意思
http://|ftp://。
您可以将正则表达式缩短为:
preg_replace('#(?:http|ftp)#', 'https', $value);
了解错误:
Unknown modifier '/'
在您的regex中
'/http:///ftp:///',第一个
/视为开始定界符,
/之后的
:被视为结束定界符。现在我们知道可以为正则表达式提供修饰符以更改其默认行为。一些这样的修饰符是:
i
:使匹配的大小写不敏感m
:多行搜索
但是PHP在结束定界符之后看到的是另一个,
/并试图将其解释为修饰符,但失败了,从而导致错误。
preg_replace返回更改后的字符串。
$value = 'http://foo.com';$value = preg_replace('#http://|ftp://#', 'https://', $value);// $value is now https://foo.com
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)