我正在努力实现这一目标。我有很多看起来像这样的HTML(例如)。
<div>
<img src="http://firstsite.com/path/to/img/main.jpg" style="width: 500px; height: 400px;" />
</div>
现在我尝试制作一个自动将图像路径更改为另一个网站的PHP,但我也想下载图像并将它们放入相同的文件夹结构中。到目前为止,我做到了这一点:
$input = "c:/wamp/www/primo/input12";
$output = "c:/wamp/www/primo/output12";
$handle = opendir($input);
while (($file = readdir($handle)) !== false) {
if($file != '.' && $file != '..') {
$data = file_get_contents($input . "/" . $file);
$data = str_replace("http://firstsite.com/", "http://secondsite.com", $data);
file_put_contents($output . "/" . $file, $data);
}
}
closedir($handle);
这改变了路径,但现在我需要以某种方式在我的示例中以变量的完整路径http://firstsite.com/path/to/img/main.jpg
进入下载图像。
有没有办法在替换只是路径开头的http://firstsite.com/
时获取图像的完整路径?
先谢谢你,丹尼尔!
答案 0 :(得分:1)
怎么样:
preg_match_all('/(http:\/\/firstsite\.com\/[^\s]*)/', $data, $matches);
答案 1 :(得分:1)
仅获取图片:
$data = file_get_contents($input . "/" . $file);
preg_match_all('/\<img.*src=\"(.+?)\"/s', $data, $matches);
//go through the match array and download your files
$data = str_replace("http://firstsite.com/", "http://secondsite.com", $data);
file_put_contents($output . "/" . $file, $data);
获取所有路径:
$data = file_get_contents($input . "/" . $file);
preg_match_all('/http\:\/\/firstsite\.com([^\s]+?)/s', $data, $matches);
//go through the match array and download your files
$data = str_replace("http://firstsite.com/", "http://secondsite.com", $data);
file_put_contents($output . "/" . $file, $data);