我有一个PHP脚本,里面有无限循环。浏览器不会在循环中打印第一个echo语句,它甚至不提供到超链接的正确链接。什么可能出错?
<html>
<head>
<style>
img{
height:200px;
width:200px;
}
</style>
</head>
<body>
<?php
error_reporting (0);
set_time_limit(0);// Setting an infinite timeout limit.
for($i=1; ;$i++)
{
$to_send = "http://graph.facebook.com/";
$to_send_new = $to_send.$i;
$content = file_get_contents($to_send_new);
$parsed = json_decode($content);
$link = $parsed->link;
$link = str_replace("http://www.facebook.com","https://graph.facebook.com",$link);
$link .="/picture?width=200&height=200";
if(!$parsed->first_name)
goto a;
?>
<br>
First Name: <?php echo $parsed->first_name;?>
<br>
Last Name:<?php echo $parsed->last_name;?>
<br>
Full Name :<?php echo $parsed->name;?>
<br>
Facebook Username:<?php echo $parsed->username;?>
<br>
Gender:<?php echo $parsed->gender;?>
<br>
<a href="<?php echo $link; ?>" target="_blank">Profile Picture</a>
<!--
<img src="<?php/* echo $link; */?>" >
-->
<br>
<hr>
<?php
sleep(5);
a:
}
?>
</body>
</html>
答案 0 :(得分:0)
小心无限循环。根据您的Web服务器(例如apache)和php设置,对服务器的任何请求都会在服务器上添加一个线程,该线程会占用其资源集。这可能会或可能不会挂断您的服务器。
有时我会自己使用持久循环。在这种情况下,我发现apachestatus很有用,可以检查哪些线程仍在运行: http://httpd.apache.org/docs/2.2/mod/mod_status.html
它还提供了有助于杀死旧线程的PID。