[英]cURL shows blank page
我的 curl 代碼顯示一個空白頁
<?
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_URL,"http://mysite/scripts/showsomething.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$result=curl_exec ($ch);
curl_close ($ch);
$core = explode('<!--- BEGIN -->', $result);
$main = explode('<!--- END -->', $core[1]);
echo $main[0];
?>
這段代碼在本地主機上工作正常,但在服務器上不起作用......
您的問題背后可能有多種原因。
1) 改變<?
進入<?php
看看它是否有效。
2) 對於簡短的測試,從您的服務器運行此代碼並檢查它是否顯示輸出。
<?php
echo "sabuj";
?>
3) 某些站點在其網站請求中尋找用戶代理字符串。 當他們找不到用戶代理時,他們使用返回空白頁。 您可以通過設置如下所示的用戶代理來克服這個問題。
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0');
4)您可以做的另一件事是,使用ssh
客戶端(如果有)訪問服務器並使用wget
工具運行 url,看看您是否可以下載您的頁面。
wget "http://yoursite/page/blabla/...php"
5) 最后,在啟用詳細模式的情況下運行 curl 代碼。 它將幫助您調試 curl 請求。
curl_setopt($ch, CURLOPT_VERBOSE,true);
工作代碼...
$ch = curl_init();
$timeout = 10;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$data = curl_exec($ch);
curl_close($ch);
var_dump($data);
希望能幫助到你...
將您的錯誤報告一直設置為 11。
error_reporting(E_ALL);
這將告訴您更多有關您面臨的問題的信息。 在開發環境中使用 curl 並移動到服務器時,最常見的罪魁禍首是缺少 curl 包。
您可以通過執行以下操作來檢查是否安裝了 curl:
if(!function_exists('curl_version')) {
throw new Exception('Curl package missing');
}
因此,“PHP Fatal error: Call to undefined function curl_init() in...”是一個非常常見的錯誤。
一些額外的調試技巧是...
我已經閱讀了以前的答案,似乎您的代碼很好,但問題是與遠程服務器的連接,請嘗試以下操作:
<?
//debug
error_reporting(E_ALL);
ini_set('display_errors', 1);
//debug end
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_URL,"http://mysite/scripts/showsomething.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$result=curl_exec ($ch);
curl_close ($ch);
echo result;
?>
它輸出什么?
筆記:
您管理其他服務器嗎?
如果沒有,是否有可能您的 ip 被遠程服務器阻止了?
腳本http://mysite/scripts/showsomething.php
是否包含任何錯誤?
如果你能對其進行編輯,請啟用PHP錯誤showsomething.php
通過在它的頂部加入如下代碼:
error_reporting(E_ALL);
ini_set('display_errors', 1);
我通過添加以下代碼解決了這個問題。 問題是 SSL。
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
我希望它有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.