关于file_get_content() curl的问题

环境:win7 Apache/2.4.23 (Win64) PHP/5.6.23
我想做一个抓取网页的程序名为test.php通过localhost/test.php,开始用到了php自带的file_get_content()函数获取网页的内容,当我第一个参数填写http://www.baidu.com的时候页面可以正常抓取,但当我抓取http://www.newsmth.net/nForum/#!board/HouseRent的时候页面就会跳转到localhost/index页面显示NotFound也不会报程序运行时候的错误

1个回答

一个简单的请求网页:
<?php
$curl = culr_init();//初始化一个cURL对象
$url = "http://cart.jd.com/cart/cart.html?backurl=http://item.jd.com/176166.html&rid=0.9533184533 938766";
$header = array();
$header[] = 'User-Agent: 5.0 (iPhone; U; CPU iPhone OS 4_3 like Mac OS X; en-us)';
$header[] = 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
$header[]= 'Accept-Encoding: gzip,deflate';
$header[]= '//可以根据需要增加header内容';
curl_setopt($culr,CURLOPT_URL, $url);//设置你需要抓去的URL地址
curl_setopt($curl,CURLOPT_HEADER,$header );//设置header
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);//将结果返回输出到字符串
$str = curl_exec($culr);运行cURL,请求网页
curl_close($curl);//关闭url请求
return $str;//返回或者显示结果
?>

如何post数据:

//假设我们去post一个表单到http://www.example.com/sendSMS.php
//提交内容 一个是电话号码,一个短信内容
<?php
$phoneNumber = '13598785110';
$message = 'this is a test message about cURL to POST URL';
$curlPost = 'pNUMBER='.$phoneNumber.'&MESSAGE='.urlencode($message).'&SUBMIT=Send';//拼接请求参数
$url = 'http://www.example.com/sendSMS.php';
$header[] = '........';
$curl = curl_init();
curl_setopt($curl,CURLOPT_URL,$url);
curl_setopt($curl,CURLOPT_HEADER,$header);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl,CURLOPT_POST,1);//设置请求方式为post
curl_seropt($curl,CURLOPT_POSTFIELDS,$curlPost);//设置post数据
$data = curl_exec(curl);
curl_close($curl)

?>

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐