PHP 中dirname(_file_)

2019-03-02 01:06|来源: 网路

PHP 中dirname(_file_)

2007-5-3 16:00| 查看: 19256| 评论: 0|原作者: phpchina|来自:

 
 
 

 

转自:http://www6.blog.163.com/article/-2jc4-yGYXbp.html
通常在配置文件路径的时候用dirname(__FILE__)是非常有效的方法,但是因为__FILE__的路径是当前代码所在文件(而不是url所在文件)完整路径,所以定义配置文件通常要放在根目录下定义网站的根地址,但是下面的方法可以解决配置文件的存放问题。
  1. dirname(dirname(__FILE__)); /*
  2.  
  3. 假设__FILE__为 /home/web/config/config.php 
  4. 上面的方法输出为 /home/web 
  5. */

dirname(dirname(__FILE__));得到的是文件上一层目录名
dirname(__FILE__);得到的是文件所在层目录名


转自:http://www.cnblogs.com/delphi-xe5/articles/3897641

相关问答

更多
  • 注意,是双下划线,而不是单下划线 __FILE__ 包含当前程序文件名的字符串 __LINE__ 表示当前行号的整数 __DATE__ 包含当前日期的字符串 __STDC__ 如果编译器遵循ANSI C标准,它就是个非零值 __TIME__ 包含当前时间的字符串 例如: 输出当前程序文件名的程序: //--------------------------------------------------------------------------- #include int ...
  • 这二个都为魔术变量。 若有a页面和b页面,a包含b页面, 其中b页面中有__LINE__变量, 那么__LINE__的值为b页面__LINE__变量所在的行号。
  • 如果您使用的是log包,则可以指示记录器为条目添加各种信息的前缀 。 您可能最感兴趣的是Lshortfile常量,这会导致沿d.go:23行的前缀。 或者,有Llongfile可打印文件的完整路径(如/a/b/c/d.go:23 )。 如果你不想使用log包,你也可以使用runtime.Caller() ,这是日志包在内部使用的。 它不像C宏那么直接,但可以隐藏它在一个函数之后(并指定正确的调用深度)。 您可以看到如何为示例实施日志包 (第140行)。 If you're using the log pac ...
  • 对于PHP <5.3使用: $upOne = realpath(dirname(__FILE__) . '/..'); 或者在PHP 5.3+中使用: $upOne = realpath(__DIR__ . '/..'); For PHP < 5.3 use: $upOne = realpath(dirname(__FILE__) . '/..'); In PHP 5.3 to 5.6 use: $upOne = realpath(__DIR__ . '/..'); In PHP >= 7.0 us ...
  • 这种结构的使用是好的,而不是安全风险本身。 您突出显示的安全风险会向生产站点上的最终用户显示错误消息。 你不应该这样做! 关闭错误报告。 您可以在php.ini中更改适当的设置,或者如果您无权访问php.ini,则可以在代码的开始处执行以下操作: error_reporting(0); @ini_set('display_errors', 0); The use of that construction is fine and not a security risk by itself. The secu ...
  • 他们的结果是完全一样的 ; 所以没有区别。 例如,以下两行: var_dump(dirname(__FILE__)); var_dump(__DIR__); 会给出相同的输出: string '/home/squale/developpement/tests/temp' (length=37) 但是,至少有两个区别: __DIR__只存在于PHP> = 5.3 这就是为什么dirname(__FILE__)被更广泛地使用 __DIR__在编译时进行评估,而dirname(__FILE__)表示一个函数调 ...
  • 即使使用绝对路径,您也无法访问.htaccess目录之外的文件。 解决方案可以是在当前文件夹中创建指向图像目录的符号链接,然后将.htaccess规则指向该文件。 你的规则应该看起来像这样: RewriteRule ^images/(.*)$ /assets/images/$1 [L] #this is relative to your .htaccess file You can't access files outside of .htaccess directory, even using abso ...
  • 首先,正如其他人所说,文件路径中的空格并不好。 其次,WordPress插件永远不应该绑定到特定主题。 如果插件是特定于主题的,您应该将它包含在主题的functions.php中,这样您就可以轻松访问主题中的所有内容 To start with, as others have said, spaces in file paths are not good. Second a WordPress plugin should never be tied to a specific theme. If the p ...
  • 看起来你只需要 define('PATH', $_SERVER['SERVER_NAME']); 如果你想成为超级技术人员,你可以做这样的事情。 define('PATH', str_replace($_SERVER['DOCUMENT_ROOT'], $_SERVER['SERVER_NAME'] . '/', dirname(__FILE__))); 另一方面, 更重要的是 ,您实际上并不需要它们。 这会奏效。
  • 如果你检查你的代码,你会发现类似的define(..行为SITE_FOLDER_DIR和DIR_UPLOAD_IMAGE 。它们的工作方式完全相同。 要更改您的陈述,只需将$_SERVER['DOCUMENT_ROOT']替换$_SERVER['DOCUMENT_ROOT'] DOC_ROOT例如 $original_file = DOC_ROOT . SITE_FOLDER_DIR . DIR_UPLOAD_IMAGE . $main_image; 注意:从PHP 5.3开始,不需要使用dirname(_ ...