我在正则表达式上非常可怕!你能告诉我在这段代码中把结尾分隔符放在哪里吗?
$data = preg_replace("/ href=\"\/i", " href=\"{$domain}/", $data);
$data = preg_replace("/ src=\"\/i", " href=\"{$domain}/", $data);
答案 0 :(得分:1)
语法如下:
preg_replace("/PATTERN/FLAGS", "Replace String", $subject);
正如您所看到的,分隔符围绕模式,因此在您的情况下,您的分隔符已到位。
但是,您还在替换字符串参数中放置了分隔符,您不应该使用该分隔符。您还需要转义反斜杠\
之类的字符。所以正确的形式是:
$data = preg_replace("/ href=\"\\/i", " href=\"{$domain}\\", $data);
$data = preg_replace("/ src=\"\\/i", " href=\"{$domain}\\", $data);
该代码会将href="\
的任何实例替换为href="DOMAIN\
。
但是,对于特定的替换件,RegEx不是必需的。您可以使用简单的str_replace()
:
$data = str_replace('href="\\', "href=\"{$domain}\\", $data);
$data = str_replace('src="\\', "src=\"{$domain}\\", $data);