第一种方案 这种方案代码太多 获取到的数据还是对象
$loginUrl = "采集地址";
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, $loginUrl);
$result = curl_exec($ch);
curl_close($ch);
$json = json_decode($result);
$arr[] = json_decode(json_encode($json), true);//php系统函数转换obj转数组
第二种方案 这种方案执行出来的接口数据直接是数组 代码简洁 明了 个人推荐使用
$url = '地址';
$str = file_get_contents($url);
$arr = json_decode($str,true);
dump($arr);
使用讲解如下
header("Content-type: text/html; charset=utf-8");
//连接数据库
try{
$pdo = new PDO("mysql:host=localhost;dbname=xxxxxx","root","xxxxxx");
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
}catch(PDOException $e){
echo"数据库连接失败".$e->getMessage();
}
//设置时区
date_default_timezone_set("PRC");
//采集地址
$url = 'xxxxxx';
$str = file_get_contents($url);
$arr = json_decode($str,true);
foreach($arr as $val){
//组装数据入库,例如:
$title = $val['title'];
$content= $val['content'];
$addtime = $val['addtime'];
//ignore 忽略主键与唯一ID重复的元素,不出错
$sql1 = "INSERT ignore INTO `gao`( `id`, `title`, `content`, `addtime`) VALUES (null,'".$title."','".$content."','".$addtime."')";
$stmt1 = $pdo->prepare($sql1);
$res = $stmt1->execute();
}
if($res){
die('success');
}else{
exit('fail');
}
采集网站的图片
案例
$url = "http://www.tupianzj.com/meinv/guzhuang/list_177_1.html"; $ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 30); $html = curl_exec($ch); curl_close($ch); $img_preg = '/<img src="(.*)"/U'; preg_match_all($img_preg,$html,$img); dump($img); $filename = 'a.txt'; $fp = fopen($filename,'a'); for($i=0;$i<count($img[1]);$i++){ $ext = pathinfo($img[1][$i])['extension']; $arr=fwrite($fp,$img[1][$i]."\r\n"); if($arr){ echo '数据导入成功'; }else{ echo "数据导入失败"; }
不懂得随时留言