逻辑运算符 PHP 变量等于 A 或 B 或 C,它不会作为它们中的任何一个进行计算



我目前正在使用 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

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

if ($newfilename != ".." && $newfilename != "."  && $newfilename != "")  {
    // file name is not '..', '.' or ''
}

尝试

if(($newfilename != "..") && ($newfilename != ".") && ($newfilename != ""))  {
    // 
}

更短:

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

更短且绝对肮脏

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

(echo 不返回任何值,因此 neggate null 为真,因此执行 var_dump)

相关内容

最新更新