标签: require-once

如何加速1800行PHP包括?它将我的页面加载速度降低到10秒/视图

我设计了我的代码,将所有重要的函数放在一个现在1800行的PHP文件中.

我在其他PHP文件中调用它 - 例如AJAX处理器 - 使用简单的"require_once("codeBank.php")".

我发现加载所有这些函数大约需要10秒钟,即使我只有一些全局数组和一些其他函数.例如,主要的AJAX处理器代码只需要8秒钟来进行简单的语法验证(其操作函数存储在codeBank.php中).

当我注释掉require_once时,我的AJAX响应时间从10秒加速到40ms,所以很明显PHP试图用这1800行函数做一些事情.即使安装了APC,这也是令人惊讶的.

我应该怎么做才能将我的代码速度恢复到低于100毫秒的水平?我是否未能以某种方式获得缓存的好处?我是否需要将单个功能库文件剪切成不同的部分?是否还有其他微妙的事情可以阻止我的响应时间?

或者除此之外,有哪些工具可以进一步挖掘哪些PHP操作会遇到速度障碍?

==========================

[编辑]已解决.

==========================

正如你们许多人所指出的那样,没有合理的理由说明为什么只有一个1800行的php函数库会导致速度减慢.实际发生的是我有一个调试行调用了一个较长的API调用函数.每当我包含PHP文件时,我都是从远程查询数据构建一个完整的数据结构.

一旦我杀了那条线,一切都回到了快速的30毫秒响应.对我来说遗憾的是,每次调用AJAX脚本时,require_once()都会打开php文件.但是,这就是我的状态,并且忘记了每次AJAX脚本完成时它都会关闭并且每次都重新打开并重新编译.

php ajax require-once

4
推荐指数
1
解决办法
642
查看次数

为什么人们说require_once慢于require?

可能重复:
为什么require_once这么糟糕?

当PHP包含文件时,我假设它将文件名存储在数组中.

然后,当包含另一个文件时,它会检查该数组是否已经包含它,对吧?

那么这里最重要的是什么?为什么人们如此害怕这个阵列检查?这不像是你包含了数百万个文件......

in_array检查是一直进行的.我几乎在所有功能中使用它们:)

php arrays require require-once

4
推荐指数
1
解决办法
4132
查看次数

强制php查看Document Root

所以我正在搞乱twitter api,我希望将这个文件包含在每个页面的页脚中.页脚通过phps require_once函数加载.问题是我无法使用完整的URL,因为url文件acsess因为显而易见的原因被关闭.所以我试着用

require_once $_SERVER['DOCUMENT_ROOT']('/lib/twitter/base.php');
Run Code Online (Sandbox Code Playgroud)

但那失败了.我做错了什么或者我怎样才能做得更好?

php require-once

4
推荐指数
1
解决办法
3077
查看次数

使用include(),include_once()和require()构造的实际方案

其中includeinclude_oncerequirerequire_once我一直只使用require_once。许多第三方框架也都使用require_once

有人可以描述必须使用其他构造的真实情况吗?

php require-once

4
推荐指数
1
解决办法
1432
查看次数

如何在php中包含文件后排除文件?

我们在里面添加一个文件Myfile.php:

require_once 'abc.php';
Run Code Online (Sandbox Code Playgroud)

要么

include_once 'abc.php';
Run Code Online (Sandbox Code Playgroud)

我们将如何删除文件?或者如何abc.php在某段代码之后停止访问文件内容?

php require-once php-include

4
推荐指数
2
解决办法
2万
查看次数

如何在wordpress中允许require_once()到php文件

我有一个由wordpress制作的网站,我制作了一些我想要执行的php文件,由于某种原因我需要require_once(/wp-includes/class-phpass.php),但我得到了失败打开所需的错误,有一个htaccess文件在根文件夹中并且在wp-includes文件夹中不存在htaccess包含这个:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress
Run Code Online (Sandbox Code Playgroud)

那怎么解决这个问题?!, 谢谢

编辑

我的wordpress没有安装在root文件夹中,就像root/live一样

php wordpress .htaccess require-once

4
推荐指数
1
解决办法
2万
查看次数

php require_once没有按照我想要的方式工作..相对路径问题

我在分配require_once的相对路径时遇到问题.我确定这是一件很简单的事情,我没有看到......

文件夹目录结构级别1:站点级别2:包括级别2:类

so ... site/include/global.php < - 这是从site/class/db.php调用函数自动加载的地方

当我尝试使用时

function__autoload($className)
{
     require_once '../class/'.$className.'.php';

}
Run Code Online (Sandbox Code Playgroud)

我得到:

警告:require_once(../ class/db.php)[function.require-once]:无法打开流:没有这样的文件或目录

致命错误:require_once()[function.require]:无法开口所需 '../class/db.php'(包含路径= '; ./包括; ./梨'.)

我究竟做错了什么?如果我将global.php放在类文件夹中,它会正常工作,所以我假设我对导致问题的相对路径的理解很差.

谢谢

php require-once

3
推荐指数
1
解决办法
2万
查看次数

PHP检查如果require_once()内容为空

我正在编写一个PHP脚本,它通过"require_once()"方法包含了几个外部PHP脚本.我想知道主脚本(包括其他脚本)是否有办法判断包含脚本的处理输出是否生成了任何内容.

因此,例如,用户对特定脚本的权限可能导致PHP不生成任何输出.所以,也许,主脚本会回应如下:

                             Nothing interesting here!
Run Code Online (Sandbox Code Playgroud)

有没有办法在主脚本中执行此操作,还是需要在包含的脚本中创建这些测试,并将结果返回到主脚本?

感谢您的时间,
spryno724

php include require-once server-side-includes

3
推荐指数
1
解决办法
7957
查看次数

PHP - require_once在多个页面中

我正在使用LAMP堆栈来开发PHP应用程序.我使用require_once来包含类文件.我需要在多个PHP页面中使用这些类文件中的函数.所以,我使用require_once在所有必需的PHP页面中包含这些类文件.但是,如果我将这些类文件包含在多个页面中,则PHP文件将变为空白.它什么都没显示.查看源也不显示任何内容.

文件:test.php,process.php和class.test.php

test.php有

<?php
    session_start();
    require_once 'classes/class.test.php';

    .
    Few more classes
    .
    .  


?>

<html>   
    <form name = "myForm" method="POST" action="process.php">
       <input type = "text" name="username" value=""/>
       <input type = "submit" value="Submit" />
    </form>   
</html>
Run Code Online (Sandbox Code Playgroud)

process.php

<?php 
    session_start();
    require_once 'classes/class.test.php';

    $obj_test = new test();
    $obj_test->test();
?>
Run Code Online (Sandbox Code Playgroud)

class.test.php

<?php
    session_start();
    require_once 'class.misc.php';
    require_once 'config.php'; //DB connection details

    function test()
    {
        $obj_misc = new misc();
        $id = $obj_misc->random_ID();
        $username = $_POST['username'];             

        $query = "INSERT INTO test_table VALUES ('$id','$username',NOW());
        mysql_query($query);
    }
?>
Run Code Online (Sandbox Code Playgroud)

现在,它返回一个空白页面.如果我在process.php中注释掉require_once,test.php页面会显示表单,但在提交表单时,process.php会抛出错误"找不到类测试". …

php require-once

3
推荐指数
1
解决办法
1347
查看次数

PHP找到require_once真实路径

我需要require_once这个文件main.class.php,并functions.phpconfig.phpadmin/test.php.如何找到php需要真正的路径?!

注:main.class.phpclass folder,functions.phpincludes folderconfig.phproot目录test.phpadmin folder.

文件目录:

root
    /admin/
        ->test.php 
    /class/
        ->main.class.php
    /includes/
        ->functions.php
    /templates
    config.php
    phpinfo.php
Run Code Online (Sandbox Code Playgroud)

php realpath require-once

3
推荐指数
1
解决办法
3527
查看次数