我正在制作一个将内容(图片)放到我的网站上的抓取工具,我已经制作了一个脚本,可以抓取并将网址保存到图像中,但是现在我需要将图像上传到我的服务器以便我可以使用他们在我的网站上。
我见过有人说应该使用file_put_contents,但是你必须指定图片名称和ext,但它会是动态的吗?
答案 0 :(得分:1)
您可以使用file_get_contents()和file_put_contents()
$image = 'http://example.org/image.jpg';
$filename = basename($image);
$content = file_get_contents($image);
file_put_contents('/path/to/your/dir/'.$filename, $content);
答案 1 :(得分:0)
使用file_get_contents
和file_put_contents
可能是最简单的方法。
为避免冲突(具有相同名称的文件),您可以创建文件名的url部分:
假设有一系列网址:
$path = '/path/to/image/folder/';
$urls = array(
'http://www.somesite.no/some_image.jpg',
'http://www.someothersite.no/some_other_image.jpg',
'http://www.someothersite.no/another_image.jpg'
);
foreach ($urls as $url) {
$file_content = file_get_contents($url);
$filename = preg_replace("/[^a-zA-Z0-9 ]/", "", $url);
$filename = str_replace(" ", "-", $filename);
file_put_contents($path.$filename, $file_content);
}
<强>文档强>
file_get_contents
- http://www.php.net/manual/en/function.file-get-contents.php file_put_contents
- http://www.php.net/manual/en/function.file-put-contents.php preg_replace
- http://php.net/manual/en/function.preg-replace.php str_replace
- http://php.net/manual/en/function.str-replace.php