php下載curl獲取遠程圖片,php獲取遠程文件

本文目錄一覽:

PHP CURL 獲取遠程數據下載

這樣做肯定是用的你的帶寬,是把文件下載到你的伺服器上,然後再下載給客戶端。

有兩條路你可以去試試看,我沒做過:一是setcookie指定域名是那個網站,然後轉向:

setcookie ($cname ,$cvalue ,$expire ,$path , $host);

header(‘location: $url”);

另外一個方法類似,好像有個P3P可以傳遞COOKIE,需要你自己查資料:

setcookie ($cname ,$cvalue);

header(‘P3P: ….’);

header(‘location: $url”);

第二個辦法應該是可以的,陶寶和開心網都在用這樣的技術,陶寶有許多域名,一次登錄後都可以使用,就是利用P3P實現的COOKIE傳遞。

curl獲取遠程圖片時,如何設置本地保存路徑?

設置保存路徑

define(‘IMAGE_DIR’, ‘c:\\xampp\\htdocs\\scraper\\image\\’);

保存圖片函數。

$imageUrl = 你要的圖片的url

$imageType = 你要的圖片保存的格式

saveImage($imageUrl, $imageType = ‘IMAGETYPE_GIF’) {

if (!file_exists(IMAGE_DIR)) {

mkdir(IMAGE_DIR, 0777, true);

}

if( $imageType === IMAGETYPE_JPEG ) {

$fileExt = ‘jpg’;

} elseif ( $imageType === IMAGETYPE_GIF ) {

$fileExt = ‘gif’;

} elseif ( $imageType === IMAGETYPE_PNG ) {

$fileExt = ‘png’;

}

$newImageName = md5($imageUrl). ‘.’ . $fileExt;

$image = new Image();

$image-load($imageUrl);

$image-resizeToWidth(100);

$image-save( IMAGE_DIR . $newImageName, $imageType );

return $newImageName;

}

這是我的圖片類,保存前可轉換格式,圖片大小。

?php

class Image {

private $_image;

private $_imageFormat;

public function load($imageFile) {

$imageInfo = getImageSize($imageFile);

$this-_imageFormat = $imageInfo[2];

if( $this-_imageFormat === IMAGETYPE_JPEG ) {

$this-_image = imagecreatefromjpeg($imageFile);

} elseif( $this-_imageFormat === IMAGETYPE_GIF ) {

$this-_image = imagecreatefromgif($imageFile);

} elseif( $this-_imageFormat === IMAGETYPE_PNG ) {

$this-_image = imagecreatefrompng($imageFile);

}

}

public function save($imageFile, $_imageFormat=IMAGETYPE_JPEG, $compression=75, $permissions=null) {

if( $_imageFormat == IMAGETYPE_JPEG ) {

imagejpeg($this-_image,$imageFile,$compression);

} elseif ( $_imageFormat == IMAGETYPE_GIF ) {

imagegif($this-_image,$imageFile);

} elseif ( $_imageFormat == IMAGETYPE_PNG ) {

imagepng($this-_image,$imageFile);

}

if( $permissions != null) {

chmod($imageFile,$permissions);

}

}

public function getWidth() {

return imagesx($this-_image);

}

public function getHeight() {

return imagesy($this-_image);

}

public function resizeToHeight($height) {

$ratio = $height / $this-getHeight();

$width = $this-getWidth() * $ratio;

$this-resize($width,$height);

}

public function resizeToWidth($width) {

$ratio = $width / $this-getWidth();

$height = $this-getheight() * $ratio;

$this-resize($width,$height);

}

public function scale($scale) {

$width = $this-getWidth() * $scale/100;

$height = $this-getheight() * $scale/100;

$this-resize($width,$height);

}

private function resize($width, $height) {

$newImage = imagecreatetruecolor($width, $height);

imagecopyresampled($newImage, $this-_image, 0, 0, 0, 0, $width, $height, $this-getWidth(), $this-getHeight());

$this-_image = $newImage;

}

}

?

php 用CURL 抓取圖片

preg_match(‘@p\.php\?p=(.*)@Ui’, $url, $url);//獲取圖片地址

if(isset($url[1]))

$url=$url[1];

else

$url=”;

if($url):

//curl抓取圖片過程

$ch = curl_init();

if (defined(‘CURLOPT_IPRESOLVE’) defined(‘CURL_IPRESOLVE_V4’)) {

curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);

}

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_HEADER, 0);

$content = curl_exec($ch);

$info = curl_getinfo($ch);

curl_close($ch);

if ($info[‘http_code’] != 200)

$content = NULL;

if($content)//保存圖片到本地

@file_put_contents (‘存放地址’, $content);

endif;

原創文章,作者:CKEP,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/145051.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
CKEP的頭像CKEP
上一篇 2024-10-26 11:54
下一篇 2024-10-26 11:54

相關推薦

發表回復

登錄後才能評論