对整个页面使用index.php很慢

对整个页面使用index.php很慢,php,html,mysql,sql,performance,Php,Html,Mysql,Sql,Performance,我已经创建了一个网站,希望将所有页面合并到一个index.php文件中的一个页面中。因此,我使用if($\u GET['page'])和index.php文件包含15000行代码,大小约为800KB,将页面分隔开。下面是我的index.php文件 index.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transition

我已经创建了一个网站,希望将所有页面合并到一个
index.php
文件中的一个页面中。因此,我使用
if($\u GET['page'])
index.php
文件包含15000行代码,大小约为800KB,将页面分隔开。下面是我的
index.php
文件

index.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
</head>
<body>

<?php
   if(!$_GET['page']||$_GET['page']=="home"){
?>
<!--Inside this may have over 2000 lines of code, And include HTML or PHP code-->
<?
   }
?>

<?php
   if($_GET['page']=="blog"){
?>
<!--Inside this may have over 2000 lines of code, And include HTML or PHP code-->
<?
   }
?>

<?php
   if($_GET['page']=="discover"){
?>
<!--Inside this may have over 2000 lines of code, and include HTML or PHP code-->
<?
   }
?>

<?php
   if($_GET['page']=="user"){
?>
<!--Inside this may have over 2000 lines of code, and include HTML or PHP code-->
<?
   }
?>

<?php
   if($_GET['page']=="messages"){
?>
<!--Inside this may have over 2000 lines of code, and include HTML or PHP code-->
<?
   }
?>

<?php
   if($_GET['page']=="help"){
?>
<!--Inside this may have over 2000 lines of code, and include HTML or PHP code-->
<?
   }
?>

</body>
</html>

我认为800kb的文件不会导致5-15秒的执行时间

我宁愿认为你发出的命令之一太慢了

要找出哪一个,您应该在脚本中测量执行时间

把这个放在开头:

$time_start = microtime(true);
在脚本中的不同测量点:

echo (microtime(true) - $time_start);

它不会花费5-15秒,即使代码是15k行(在许多项目中确实存在),可能有一些循环,可能会导致问题或一些处理不正确的事情。请在上出错并检查错误

调试您的代码,并尝试找出代码的哪一部分花费更多时间,注意使代码变慢的输入,检查要执行的代码部分,然后您就可以轻松地找出真正的问题

注意: 使用
if(isset($\u GET['value']){
代替
if($\u GET['value']){

因为如果
$\u GET['value']
value为0,它将不起作用,如果在错误打开时未设置$\u GET['value'],它将返回错误。

TL;DR但这里有一个小提示:
if()有一个可选的<代码> Out/<代码>子句。当你找到你想要的东西时,你可以停止搜索。1)将显示与逻辑分开,除非你的PHP代码明确地做了用户所看到的事情,否则你的PHP代码会转到别的地方。2)考虑简单地从页面字符串中移除不是一个字母的任何东西,然后如果它存在,就包含该文件。考虑到使用类似于APC的插件,通过缓存PHPS解析版本来改进页面时间。你缺少一个关闭支架。最好使用声明来避免范围。THX。修复BrAcEt。是的,我这样做了,结果执行时间10-100毫秒,有时仍然是5-15秒,但问题是:TWEN执行时间上升到15秒的命令是什么?不要仅仅在脚本的开始和结束之间弄乱时间。而且在脚本中间的不同点。我会尝试。这是正确的吗?<代码>(ISSET($yGET('Value')= =“首页”){< /代码>不!使用<代码>如果(ISSET($YOGET [值] ])& $$GET [值] = =“HOST”){
@Marcus有疑问时,请查看手册:返回
true
false
,因此它不可能成为
'home'
。感谢@Subhanker和所有人,我将它们全部改为isset(),似乎这是我问题的原因,我不相信这件小事会产生巨大影响。
echo (microtime(true) - $time_start);