2013-07-14 109 views
0

嘿,我的代碼有問題。 它的第一個10名稱正常工作,但然後「file_get_contents」返回只是空字符串超時問題file_get_contents?

這是超時問題?還是有其他原因?

我該如何解決這個問題?

我的代碼:

<?php 
$member; 

mysql_connect("localhost","**********","********"); 
mysql_select_db('bf3_ezstats'); 
$sql = mysql_query('SELECT id, name FROM ez2bf3_player ORDER BY id ASC'); 

while($row = mysql_fetch_assoc($sql)){ 
$member[$row['id']] = $row['name']; 
} 
mysql_close(); 
print_r($member); 

foreach ($member as $ip => $player){ 
ini_set('default_socket_timeout', 120); 
$SC = file_get_contents('http://battlelog.battlefield.com/bf3/user/'.$player); 

$SC = split('<surf:container id="profile-gamereport-previews">',$SC); 
$SC = split('</surf:container>',$SC[1])[0]; 

$IPs = array(0=>$player); 
while(strpos($SC,'href') !== false){ 
    $start = strpos($SC,"href"); 
    $end = strpos($SC,'"',$start+6); 
    $IP= substr($SC,$start,$end-$start); 
    $IPs[] = "http://battlelog.battlefield.com".str_replace('href="',"",$IP); 
    $SC = substr($SC,$end,strlen($SC)-1); 
} 
print_r($IPs); 

}

>

+0

遠程防火牆可能會阻止您。引入一個隨機的'睡眠()'延遲 – DevZer0

+0

[不要使用mysql_ * api其棄用所以要麼使用PDO或mysqli看到這一點](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql- function-in-php/14110189#14110189) –

回答

-1

file_get_contents()函數外部的URI僅僅是一個巨大的安全問題?這種方法可能會導致很多錯誤,可能包括你的錯誤。

如果您需要通過HTTP在外部服務器上工作,我強烈建議使用cURL(http://php.net/manual/fr/book.curl.php)。我認爲你會發現它更方便,並且可以爲自己節省很多麻煩。

+0

現在這是錯誤的。 – DevZer0

+0

實際上,在默認配置中禁用'allow_url_fopen'是有原因的。當然,如果你正在考慮給出更具建設性和詳盡的評論,請隨時這樣做。 –