0

这是独家新闻。我正在使用正则表达式来查找图像并在其来源的开头插入“../../”。但是,它不仅不起作用,而且当我运行 RegEx 时,保存图像文件名称(包括扩展名)的变量也在发生变化。如果我注释掉“preg_replace”行,变量会正确回显。谁能告诉我怎么了?提前致谢!

$imagefile = substr($filedata,($jpgbeginning+1),(($jpg+3)-$jpgbeginning));
$filedata = preg_replace('/(<img\s+.*?src=")(.*\\.(?:jpg|png|bmp|gif).*?>)/', '<img src="../'.$imagefile.'" />', $filedata);
echo $imagefile."<br /><br />";

此外,在正则表达式中,它加倍了“../”部分,因此出于某种原因实际上输出为 ../../。再次感谢!

4

1 回答 1

0

以下 preg_replace 应该可以工作:

preg_replace("/(<img\s+src\s*=\s*\")(.+?)(?=\")/","$1../../$2", HTML);
于 2013-03-08T00:55:16.130 回答