zoukankan      html  css  js  c++  java
  • PHP中文件包含的路径问题

    在程序中当前文件夹下文件路径可以表示为3种:1)绝对路径,2)相对路径,3)直接文件名

    例如在/var/www下的a.php:1)/var/www/a.php 2)./a.php 3)a.php

    在PHP中包含一个文件路径也可以有以上3中方法,但效率是依次递减的。原因可以通过strace来追踪。

    首先写一个test.php:

    1
    <?php

    2
    include('a.php'); //为了看到文件包含顺序,这个a.php是不存在的

    然后strace追踪test.php的执行

    root@Cyrec-desktop:/var/www# strace -e file php test.php

    可以看到如下:

    lstat64("/var/www/./c.php", 0xbfe389f4) = -1 ENOENT (No such file or directory)
    lstat64("/opt/php5/lib/php/c.php", 0xbfe389f4) = -1 ENOENT (No such file or directory)
    lstat64("/var/www/c.php", 0xbfe389f4)   = -1 ENOENT (No such file or directory)
    可以看到包含文件的查找过程是 首先在当前目录中查找,没找到(-1)然后到PHP配置的include_path中查找,又没

    找到,最后到执行脚本的目录查找,也没找到。

    然后将test.php中的a.php路径改为./a.php然后再用strace查看:

    lstat64("/var/www/./c.php", 0xbfd2c8d4) = -1 ENOENT (No such file or directory)

    只有这一条查找记录,但系统还是要将/var/www/./c.php转换成/var/www/c.php这样的绝对路径。

    如果include中使用绝对路径/var/www/a.php,结果如下:

    lstat64("/var/www/c.php", 0xbf92a3d4)   = -1 ENOENT (No such file or directory)

    这是最快的方法,所以在PHP程序中可以在配置文件中设置当前文件夹路径常量,包含的时候组成绝对路径,提高

    效率,又不影响程序的修改。

  • 相关阅读:
    javascript入门教程笔记
    杭电2025
    杭电 2024
    杭电2019
    UEditor编辑器上传图片开发流程
    js操作textarea方法集合
    ueditor编辑器和at.js集成
    js分页算法
    js获取url中的参数
    第7章函数表达式笔记
  • 原文地址:https://www.cnblogs.com/human/p/3391428.html
Copyright © 2011-2022 走看看