0

コードに問題があります。最初の 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);

}

?>

4

1 に答える 1

-1

外部 URI での file_get_contents() は、単なるセキュリティ上の大きな問題です。この方法は、おそらくあなたのものを含む多くのエラーにつながる可能性があります。

HTTP を介して外部サーバーで作業する必要がある場合は、cURL ( http://php.net/manual/fr/book.curl.php ) の使用を強くお勧めします。より便利だと思いますし、多くの手間を省くことができるかもしれません。

于 2013-07-14T12:23:59.527 に答える