检查由于open_basedir限制而导致路径失败的方法

3
在失败之前检查是否有可能?
if (is_in_open_basedir($path)) {
}

这是一个好问题,因为我认为如果不使用realpath(http://www.php.net/realpath)(),你无法进行强大的检查,但realpath()本身也受制于open_basedir。 - goat
3个回答

0

您可以使用ini_get来获取当前的open_basedir值,以便与其他值进行比较。


0

我知道这并没有确切回答问题,但或许能解释一下背后的动机:

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

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

-3

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

try {

}
catch( $e ) {

}

请查看:PHP 异常处理


请分享更多细节。是什么让你认为这里可能会有一个可以被捕获的异常? - Nico Haase

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接