【问题标题】:Check if a path will fail due to open_basedir检查路径是否会因为 open_basedir 而失败
【发布时间】:2012-10-10 15:51:17
【问题描述】:

是否可以在失败前检查一下?

if (is_in_open_basedir($path)) {
}

【问题讨论】:

  • 这是一个很好的问题,因为我认为不使用 realpath() 就无法进行可靠检查,但 realpath() 本身受 open basedir 约束。

标签: php open-basedir


【解决方案1】:

您可以使用ini_get 获取 open_basedir 的当前值以检查其他值。

【讨论】:

    【解决方案2】:

    我知道这并不能准确回答问题,但可能是其背后的动机:

    如果您不需要在调用之前检查 并且只是想避免警告,在访问其他目录的函数上,另一种方法是使用 @ 运算符并检查 error_get_last

    error_clear_last();
    $isDir = @is_dir('/');
    if (error_get_last() !== null) {
       $isDir = 'cannot-detect';
    }
    

    【讨论】:

      【解决方案3】:

      这不是一个 php 标准函数。 要处理异常,您可以使用:

      try {
      
      }
      catch( $e ) {
      
      }
      

      检查这个:PHP Exceptions

      【讨论】:

      • 请分享更多细节。是什么让您认为这里有可能被捕获的异常?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-31
      • 1970-01-01
      • 2012-01-08
      相关资源
      最近更新 更多