PHP-超过了30秒的最长执行时间


PHP - Maximum Execution time of 30 seconds exceeded

有时我会遇到脚本执行错误,需要30多秒。它总是在我的连接器文件中。你能看看佩拉斯吗?如果你说了什么明显的话,请告诉我。。。

我在VPS上,所以我可以完全控制服务器,这样我就可以进行任何必要的更改。

session_start();
date_default_timezone_set('Europe/London');
$uTime = time();
$uDate = date('Ymd',$uTime);
$onlineLimit = 1800;
$activeLimit = 3628800;
$fDate = date('Ymd', strtotime('next monday'));
$time_start = microtime(true);
$db = mysql_connect("localhost", "xxxxxxx", "xxxxxxxx") or die("Could not connect.");
if(!$db) 
die("no db");
if(!mysql_select_db("xxxx",$db))
die("No database selected.");
if(!get_magic_quotes_gpc())
{
  $_GET = array_map('mysql_real_escape_string', $_GET); 
  $_POST = array_map('mysql_real_escape_string', $_POST); 
  $_COOKIE = array_map('mysql_real_escape_string', $_COOKIE);
}
else
{  
   $_GET = array_map('stripslashes', $_GET); 
   $_POST = array_map('stripslashes', $_POST); 
   $_COOKIE = array_map('stripslashes', $_COOKIE);
   $_GET = array_map('mysql_real_escape_string', $_GET); 
   $_POST = array_map('mysql_real_escape_string', $_POST); 
   $_COOKIE = array_map('mysql_real_escape_string', $_COOKIE);
}
  mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'")or die(mysql_error());
  $page = $_SERVER['PHP_SELF'];
  $season = mysql_fetch_assoc(mysql_query("SELECT `id`,`start`,`end` from `season` order by `id` DESC limit 0,1"));
  $seasonDays = round((strtotime($season['end'])-strtotime($season['start'])) / 86400);
  $currentDay = ceil(($uTime - strtotime($season['start'])) / 86400);

set_time_limit(0);添加到代码的顶部,它将允许它在没有时间限制的情况下运行。

UPDATE为了安全起见,如以下注释所述,将set_time_limit(x);中的x设置为执行的最大秒数。0=无限

我会在php.ini中设置更高的max_execution时间,你会看到它会死在哪里。。。

您也可以使用在站点根目录下的.htaccess文件中设置它

php_value max_execution_time 3600