国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - 不支持fsockopen但支持curl環境下下ucenter與modoer通訊問題

不支持fsockopen但支持curl環境下下ucenter與modoer通訊問題

2019-12-10 13:34PHP技術網 PHP教程

網站上線,modoer與ucenter 下不能通訊折騰了我差不多二天,開始都以為自己的配置出問題,移植了平臺后就不能通訊了,修改了幾次配置,都沒有成功

所以就懷疑是否編碼問題,或者文件權限問題,或者是不是函數不支持問題,經過排查發現原來是萬網的L1主機不支持fsockopen,在文件uc_client/client.php中的uc_fopen中出現了問題,這里的代碼是這樣: 

復制代碼代碼如下:


function uc_fopen($url, $limit = 0, $post = '', $cookie = '', $bysocket = FALSE, $ip = '', $timeout = 15, $block = TRUE) { 
$return = ''; 
$matches = parse_url($url); 
!isset($matches['host']) && $matches['host'] = ''; 
!isset($matches['path']) && $matches['path'] = ''; 
!isset($matches['query']) && $matches['query'] = ''; 
!isset($matches['port']) && $matches['port'] = ''; 
$host = $matches['host']; 
$path = $matches['path'] ? $matches['path'].($matches['query'] ? '?'.$matches['query'] : '') : '/'; 
$port = !empty($matches['port']) ? $matches['port'] : 80; 
if($post) { 
$out = "POST $path HTTP/1.0\r\n"; 
$out .= "Accept: */*\r\n"; 
//$out .= "Referer: $boardurl\r\n"; 
$out .= "Accept-Language: zh-cn\r\n"; 
$out .= "Content-Type: application/x-www-form-urlencoded\r\n"; 
$out .= "User-Agent: $_SERVER[HTTP_USER_AGENT]\r\n"; 
$out .= "Host: $host\r\n"; 
$out .= 'Content-Length: '.strlen($post)."\r\n"; 
$out .= "Connection: Close\r\n"; 
$out .= "Cache-Control: no-cache\r\n"; 
$out .= "Cookie: $cookie\r\n\r\n"; 
$out .= $post; 
} else { 
$out = "GET $path HTTP/1.0\r\n"; 
$out .= "Accept: */*\r\n"; 
//$out .= "Referer: $boardurl\r\n"; 
$out .= "Accept-Language: zh-cn\r\n"; 
$out .= "User-Agent: $_SERVER[HTTP_USER_AGENT]\r\n"; 
$out .= "Host: $host\r\n"; 
$out .= "Connection: Close\r\n"; 
$out .= "Cookie: $cookie\r\n\r\n"; 

$fp = @fsockopen(($ip ? $ip : $host), $port, $errno, $errstr, $timeout); 
if(!$fp) { 
return '';//note $errstr : $errno \r\n 
} else { 
stream_set_blocking($fp, $block); 
stream_set_timeout($fp, $timeout); 
@fwrite($fp, $out); 
$status = stream_get_meta_data($fp); 
if(!$status['timed_out']) { 
while (!feof($fp)) { 
if(($header = @fgets($fp)) && ($header == "\r\n" || $header == "\n")) { 
break; 


$stop = false; 
while(!feof($fp) && !$stop) { 
$data = fread($fp, ($limit == 0 || $limit > 8192 ? 8192 : $limit)); 
$return .= $data; 
if($limit) { 
$limit -= strlen($data); 
$stop = $limit <= 0; 



@fclose($fp); 
return $return; 


fsockopen函數不能使用,因些就只能靠其它方法了,幸虧支持curl,file_get_contents也支持,經考慮就用curl吧,修改了uc_fopen函數,如下; 

復制代碼代碼如下:


function uc_fopen($url, $limit = 0, $post = '', $cookie = '', $bysocket = FALSE, $ip = '', $timeout = 15, $block = TRUE) { 
$return = ''; 
$curl = curl_init(); 
curl_setopt($curl, CURLOPT_URL, $url); 
curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); 
if($post) { 
curl_setopt($curl, CURLOPT_POST, 1); 
curl_setopt($curl, CURLOPT_POSTFIELDS, $post); 

if($cookie) { 
curl_setopt($curl, CURLOPT_COOKIE, $cookie); 

curl_setopt($curl, CURLOPT_TIMEOUT, $timeout); 
curl_setopt($curl, CURLOPT_HEADER, 0); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
$return = curl_exec($curl); 
if (curl_errno($curl)) { 
echo '<pre><b>錯誤:</b><br />'.curl_error($curl); 

curl_close($curl); 
return $return; 


于是modoer下的uc_client/client.php和uchome下的uc_cilent/client.php,就這樣修改了uc_open函數,呵呵,第一次使用curl,網上的資料還是好多的,所以也沒有什么阻礙,不過就不知這個修改會不會影響其它的東西,還有待測試羅。。。。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 精品久久久久久亚洲精品 | 免费福利网站 | 五月婷婷在线观看 | 日韩第一区 | 网站av| 中文字幕av一区二区三区 | 午夜在线电影 | 一区二区三区自拍 | 精品伦精品一区二区三区视频 | 亚洲国产二区 | 国产理论在线 | 午夜影院免费观看视频 | 国内精品一区二区三区视频 | 国产精品亚洲视频 | 亚洲最大的黄色网 | 欧美视频二区 | 亚洲国产高清在线播放 | 国产乱码精品一区二区三区忘忧草 | 精品亚洲永久免费精品 | 伊人久久国产 | 一区二区三区在线视频播放 | 日本一区二区视频 | 香蕉久久久久久 | 国产淫片在线观看 | 日韩欧美在线视频 | 久久久国产一区二区三区 | 日韩成人在线观看 | 日韩一区二区三区在线看 | 日韩欧美国产精品综合嫩v 在线视频 中文字幕 | 天堂资源 | а天堂中文最新一区二区三区 | a久久| 亚洲91av | 久久这里有精品视频 | 日韩在线永久免费播放 | 日韩视频精品 | 午夜天堂 | 天天操天天碰 | 亚洲国产精品久久 | 国产传媒视频 | 国产免费自拍 |