0

我正在尝试爬取文件并在每个图像路径的开头插入“../../”。不幸的是,脚本超时了,因为在添加它之前只花了几秒钟的时间运行,所以有些东西告诉我它没有做我认为应该做的事情。这就是我的做法:

$filedata = substr_replace(substr($filedata,$imageBeginning,1),"../../",$imageBeginning);

我正在爬取整个 HTML 文件来完成此操作,因此我需要一个有效的解决方案。任何帮助表示赞赏。

4

1 回答 1

0

这是完全未经测试的,但是是这样的:

preg_replace('/(<img\s+.*?src=")(.*\\.(?:jpg|png|bmp|gif).*?>)/', '$1../../$2', $filedata);

说明:您正在正则表达式中进行 2 次捕获。第一个是从img标记开始到src属性开始的所有内容。第二个是src属性值及其之后的所有内容。然后你只需在替换的中间插入“../../”。

http://php.net/manual/en/function.preg-replace.php

于 2013-02-03T19:41:40.547 回答