Home  >  Article  >  Backend Development  >  老鸟们,看看我的代码,为什么取不到URL里的内容?

老鸟们,看看我的代码,为什么取不到URL里的内容?

WBOY
WBOYOriginal
2016-06-23 14:19:331160browse

本帖最后由 guduxie 于 2013-08-19 16:42:10 编辑

Curl file_get_contents

file_get_contents报错:
Warning: file_get_contents(http://api.ajaxsns.com/api.php?key=free&appid=0&msg=我是谁?) [function.file-get-contents]: failed to open stream: Redirection limit reached, aborting in G:\EasySiteServer\HTML\msg.php on line 19

我用CURL,倒是不报错,但是取不来数据。

但是用浏览器是可以打开URL的

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><form action="msg.php" method="post">说的话:<input type="text" name="Keyword"></br><input type="submit" value="取来看看"></form><?php	    $kw = isset($_POST['Keyword']) ? filter_input(INPUT_POST,'Keyword',FILTER_SANITIZE_SPECIAL_CHARS) : isset($_GET['Keyword']) ? filter_input(INPUT_POST,'Keyword',FILTER_SANITIZE_SPECIAL_CHARS) : '';//这里是对表单POST过来Keyword值进行处理            $url = "http://api.ajaxsns.com/api.php?key=free&appid=0&msg=".$kw;   //这里是API的url,已经包括关键词部分/*            $ch = curl_init();            curl_setopt($ch, CURLOPT_URL,$url);            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);            $MsgJson = curl_exec($ch);   //这里取得上面URL的JSON型数据*/            ini_set('user_agent','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727;)');            $MsgJson = file_get_contents($url);            $MsgInfo = json_decode($MsgJson, true);              $content = $MsgInfo['content'];  //取得你想要的内容	    echo addslashes($MsgJson);            echo "</br>取得content结果:</br>".$content;?>


请大神看看,怎么才能处理

回复讨论(解决方案)

wen文问问ajaxsns吧

$ch = curl_init();curl_setopt($ch, CURLOPT_URL,'http://api.ajaxsns.com/api.php?key=free&appid=0&msg='.rawurlencode('我是谁').'?');curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");//对方网站设置了cookiescurl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");//这2个选项是关键curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1); $htmls = curl_exec($ch);curl_close($ch);echo $htmls;

我也抓不到  怎么回事啊 围观

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn