php抓图片的代码

<?php
class PublicOperating
{
/*
* 打印此成员函数执行过程中发生的错误信息
*/
protected function showErrorInfo($ex)
{
echo '<div style="border:2px solid red;background-color:#DAF1FA"><div style="background-color:green;color:yellow;text-align:center">Error Message</div><div><pre>'.$ex.'</pre></div></div>';
}


/*
* 功能: 获取给定url的远程数据
* 参数:
* 1) url: 准备获取远程数据的地址
* 执行结果:
* 1) 成功: 以字符串的形式返回获取的数据(注:可能为空字符串)
* 2) 失败: 返回false.
*/
private function fetchUrl($url)
{
$curl_hand = curl_init($url);
curl_setopt(
$curl_hand,CURLOPT_RETURNTRANSFER,true);
$curl_Data = curl_exec($curl_hand);
if($curl_Data === false)
{
$this->showErrorInfo(new Exception());
}
curl_close(
$curl_hand);
return $curl_Data;
}



/*
* 功能: 获取通过给定的正则表达式匹配的结果.
* 参数:
* 1) $pattern:匹配模式
* 2) 欲匹配的数据源
* 执行结果:
* 1) 成功: 返回匹配好的数组[preg_match_all格式]
* 2) 失败: 返回flse.
*/
private function getMatchData($pattern,$dataSource)
{
if(preg_match_all($pattern,$dataSource,$matchResult) === false)
{
$this->showErrorInfo(new Exception());
return false;
}
return $matchResult;
}



/*
* 功能:返回通过给定的模式匹配得到的给定url中的数据
* 参数:
* 1) $url: 要获取远程文件的地址
* 2) $pattern: 要匹配的正则模式
* 执行结果:
* 1) 成功: 返回通过给定匹配模式匹配得到的数据,数据格式以preg_match_all第三个参数默认的格式返回
* 2) 失败: 返回flase.
*/
protected function Action($url,$pattern)
{
if(($curlData = $this->fetchUrl($url)) === false)
{
return false;
}

if(($matchData = $this->getMatchData($pattern,$curlData)) === false)
{
return false;
}

return $matchData;
}

}
?>

posted @ 2011-05-20 15:59  zendPger  Views(174)  Comments(0Edit  收藏  举报