我试图在foreach循环中使用php条件,但遇到了一些困难。我查阅了其他处理该问题的线程,但找不到适用于我的代码的解决方案/解释。这是:
<?php
$directory = $_SESSION['cwd']; // current directory
$user = $_SESSION['simple_auth']['username']; // get username
$repository = gatorconf::get('repository'); // get base repertory of the file manager
$userdir = $repository.DS.'user'.DS.$user; // user's repertory
function scanDirectory($userdir = ''){
$folders = glob($userdir . '/*' , GLOB_ONLYDIR);
foreach($folders as $folder){
echo "$folder<br />"; // line where i tried different things for my condition
scanDirectory($folder);
}
}
scanDirectory($userdir);
?>
我试图用一个条件替换echo "$folder<br />";
行,这样在返回循环之前,变量$folder将与另一个变量进行比较,而不是被回显,如下所示:
if ($folder == $directory) {
echo "you have permissions on this folder";
}
基本上,我的代码的目的是将特定的库与用户当前所在的库进行比较,如果匹配,则会显示一些html,但我认为我没有正确的方法。
欢迎提出任何建议!
感谢的帮助
将当前目录作为函数的参数,并在遍历所有文件夹时传递它。
<?php
$directory = $_SESSION['cwd']; // current directory
$user = $_SESSION['simple_auth']['username']; // get username
$repository = gatorconf::get('repository'); // get base repertory of the file manager
$userdir = $repository.DS.'user'.DS.$user; // user's repertory
function scanDirectory($userdir = '', $directory){
$folders = glob($userdir . '/*' , GLOB_ONLYDIR);
foreach($folders as $folder){
if ($folder == $directory) {
echo "you have permissions on this folder";
}
scanDirectory($folder, $directory);
}
}
scanDirectory($userdir, $directory);
?>