現在用php采集遠程圖片是很簡單的事情,但是我們要把采集過來的數據進行過濾,這恐怕得用到正則表達式了,下面的程序是采集遠程圖片圖片並且替換圖片地址代碼。
采集遠程圖片圖片並且替換圖片地址代碼
/*
現在用php教程采集遠程圖片是很簡單的事情,但是我們要把采集過來的數據進行過濾,這恐怕得用到正則表達式了,下面的程序是采集遠程圖片圖片並且替換圖片地址代碼。
*/
$dir_date=date('y/m/d');//日期文件夾
$dir_name="images/$dir_date";//文件夾路徑
function mkdirm($path) //取文件夾名
{
if (!file_exists($path)) //判斷是否存在
{
mkdirm(dirname($path)); //返回路徑中的目錄部分
mkdir($path, 0777); //創建文件夾和權限
}
}
mkdirm($dir_name);//創建文件夾
//$files = file_get_contents('http://www.ywsp.com');
$files ='<img src="http://img.php100.com/img/bid_v2/bid_v2_content/p_bid.gif" alt="普通任務" /><img width="272px" height="60px" style="padding-top: 10px;" src="http://img.php100.com/img/index_v3/20100611001.gif">';
// 圖片地址轉換一下 $p=preg_replace('//image//', 'http://qq.ip138.com/image/', $pg[1]);
$reg = "/<img[^>]*src="(http://(.+)/(.+).(jpg|gif|bmp|bnp))"/isu";
$img=preg_match_all($reg,$files,$imgs);
for ($i=0;$i<count($imgs[0]);$i++)
{
//echo "".$imgs[1][$i]." <br>n";
//保存圖片
$opts = array(
'http'=>array(
'header'=>"referer: http://www.bkjia.com/rn"
)
);
$context = stream_context_create($opts);
header( 'content-type: image/jpeg' );
$fileresource = @file_get_contents( $imgs[1][$i],false,$context) ;
$image_old.=""".$imgs[1][$i].""".","; //先把所有網址變為一個數如1,2,3,4
$image_new.=""".$dir_name."/".mktime().$i.".jpg".""".","; //先把所有新的圖片地址變為一個數如1,2,3,4
file_put_contents($dir_name."/".mktime().$i.".jpg", $fileresource);
//保存圖片
}
$image_old=substr($image_old,0,(strlen($image_old)-1));//把網址最後個逗號去掉
$image_new=substr($image_new,0,(strlen($image_new)-1));//把新網址最後個逗號去掉
//print_r($p);
$image_old=explode(",",$image_old);//分割多個
$image_new=explode(",",$image_new);//分割多個
$files=str_replace($image_old,$image_new,$files); //把網址跟新的圖片網址調用進去替換
echo $files;