1

我目前正在使用 ftp_rawlist 输出每个文件和文件夹,包括远程站点根目录中的子文件夹。数组中文件的输出包括权限、用户等

例如来自 var_Dump

string(68) "-rw-r--r--    1 XXXX   XXXX         1754 Sep 13 12:13 run.js"

我在 foreach 循环中遍历文件和文件夹数组,我抓住最后一次出现的空格,使用 strrchr 函数隔离文件和文件夹名称。然后我修剪空白,最后使用 if 语句

  <?php     
      if($newfilename != ".." || $newfilename != "."   $newfilename != "")  {

         echo $newfilename."</br>";
         var_dump($newfilename);
     }
     ?>

我希望它输出数组中不包含“..”或“.”的文件和文件夹。"" 但它仍然输出。请问有什么帮助吗?

  array(".", "..", "name.txt")

只输出

名称.txt

代替

., .., 名称.txt

4

3 回答 3

3

您的条件应该是&&,而不是||

if ($newfilename != ".." && $newfilename != "."  && $newfilename != "")  {
    // file name is not '..', '.' or ''
}
于 2012-10-11T12:45:49.983 回答
0

尝试

if(($newfilename != "..") && ($newfilename != ".") && ($newfilename != ""))  {
    // 
}
于 2012-10-11T12:57:38.350 回答
0

更短:

if(!in_array($newfilename,["..",".",""]))  {

更短且绝对脏

!in_array($newfilename,["..",".",""]) && !echo $newfilename."</br>" &&  var_dump($newfilename);

(echo 不返回任何值,所以否定 null 为真,因此执行 var_dump)

于 2014-10-23T13:54:40.613 回答