curl을 사용하여 웹 페이지의 내용을 얻는 방법
/* * curl 확장을 사용하여 http의 get 또는post 요청을 보냅니다 */class HttpRequest {/url, 요청한 서버 주소private $url =';/is_return, private $is_return = 1을 직접 표시하지 않고 결과를 되돌릴지 여부;public function___set ($p, $v) {if(property_exists ($this, $p) {$this->$p;}//http 요청을 보내는 방법//매개 변수: 제출한 데이터,기본값은 비어 있는publicfunctionsend($data=array()) {//1. 데이터를 전달하면 서버에 데이터를 제출하는 것을 설명합니다(post). 데이터를 전달하지 않으면 서버에서 자원을 읽는다(get) $ch=curl_init();/2. get,post를 막론하고 인증서의 검증curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); //3. 요청한 서버 주소 설정curl_setopt($ch, CURLOPT_URL, $this->url); //4. get인지 postif(!empty($data)) {curl_setopt($ch, CURLOPT_POST,true);curl_setopt($ch, CURLOPT_POSTFIELDS, $data); } //5. 데이터if($this->is_return===1) {//설명은curl_setopt($ch, CURLOPT_RETURNTRANSFER,true), $result =curl_exec($ch), curl_close($ch), return $result;}else {//curl_exec($ch);curl_close($ch); } } }
curlcollect.php
require_once 'HttpRequest.class.php'; class Kl8_360 {//채집된 웹 주소를 수신하고 선별 규칙을 제정합니다.publicfunctioncollect() {$config = include'config.php';$url=$config['url'];/채집 시작 $http = new HttpRequest();$http -> url = $url;$string = $http ->send();$pattern ='#(.+?)#'; preg_match($pattern, $string, $match); //echo '
';
// var_dump($match['0']);
$str=$match['0'];
$qihao=substr($str,18,6);
$pattern1 = '#(.+?)#';
preg_match_all($pattern1, $str, $old_kaijianghao);
$old_kaijianghao=implode('',$old_kaijianghao['0']);
$kaijianghao=substr($old_kaijianghao,0,640);
$new_kaijianghao=strip_tags( $kaijianghao );
$feipan=substr($str,821,2);
$jiangchi=substr($str,839,8);
$kjtime=substr($str,858,19);
$kjtimestamp=time();
$data=array();
$data['qihao']=$qihao;
$data['kaijianghao']=$new_kaijianghao;
$data['feipan']=$feipan;
$data['jiangchi']=$jiangchi;
$data['kjtime']=$kjtime;
$data['kjtimestamp']=time();
return $data;
}
}
$a=new Kl8_360();
var_dump($a->collect());
------------------------------------------------------------------------
file_get_contents
require_once "DAOPDO.class.php";
class Kl8_360{
public function getData(){
$config = include 'config.php';
$url=$config['url'];
// var_dump($url);die;
// $url="http://chart.cp.360.cn/kaijiang/kl8?sb_spm=f35ccf8a8a86029d3082798218e9d902";
$string=file_get_contents($url);
// var_dump($string);die;
$pattern = '#
(.+?)#';
preg_match($pattern, $string, $match);
// echo '';
// var_dump($match['0']);
$str=$match['0'];
$qihao=substr($str,18,6);
$pattern1 = '#(.+?)#';
preg_match_all($pattern1, $str, $old_kaijianghao);
$old_kaijianghao=implode('',$old_kaijianghao['0']);
$kaijianghao=substr($old_kaijianghao,0,640);
$new_kaijianghao=strip_tags( $kaijianghao );
$feipan=substr($str,821,2);
$jiangchi=substr($str,839,8);
$kjtime=substr($str,858,19);
$kjtimestamp=time();
$data=array();
$data['qihao']=$qihao;
$data['kaijianghao']=$new_kaijianghao;
$data['feipan']=$feipan;
$data['jiangchi']=$jiangchi;
$data['kjtime']=$kjtime;
$data['kjtimestamp']=time();
return $data;
}
//
public function insertMysql($data){
$config = include 'config.php';
$option =$config['option'];
$dao=DAOPDO::getSingleton($option);
$qihao=$data['qihao'];
$kaijianghao=$data['kaijianghao'];
$feipan=$data['feipan'];
$jiangchi=$data['jiangchi'];
$kjtime=$data['kjtime'];
$kjtimestamp=$data['kjtimestamp'];
$sql="select * from 360kl8 where qihao=$qihao";
$res=$dao->fetchRow($sql);
if(!$res){
$sql="insert into 360kl8 (qihao,kaijianghao,feipan,jiangchi,kjtime,kjtimestamp) values ('$qihao','$kaijianghao','$feipan','$jiangchi','$kjtime',$kjtimestamp)";
// var_dump($sql);die;
@$res=$dao->exec($sql);
// if($res){
// echo 'ok';
// }else{
// echo 'no ';
// }
}
}
//
public function selectMysql($data){
$config = include 'config.php';
$option = $config['option'];
$dao=DAOPDO::getSingleton($option);
$sql="select * from 360kl8 order by qihao desc limit 20";
$res=$dao->fetchAll($sql);
if($res){
var_dump(json_encode($res));
}
// else{
// echo 'no ';
// }
}
}
$a=new Kl8_360();
echo '';
var_dump($a->getData());
$a->insertMysql($a->getData());
$a->selectMysql($a->getData());
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
시간 형식 변환, "2018-07-12T07:45:0.000Z"와 유사 = > 2018-07-11 15:45:29정의: 호출 tip: 제가 vue에서 사용한 것도 시간 뒤에 추가할 수 있습니다.split(‘T’)[0]...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.