Тайм-аут Проблема file_get_contents?
Эй, у меня проблема с моим кодом. Он отлично работает для первых 10 имен, но затем "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);
}
?>
1 ответ
Решение
file_get_contents() для внешних URI - это просто серьезная проблема безопасности. Этот метод может привести ко многим ошибкам, в том числе и вашим.
Если вам нужно работать на внешних серверах, через HTTP я настоятельно рекомендую использовать cURL ( http://php.net/manual/fr/book.curl.php). Я думаю, вы найдете это более удобным, и вы можете сэкономить много хлопот.