【问题标题】:Created batch folders on LAMP server but can't be accessed在 LAMP 服务器上创建了批处理文件夹但无法访问
【发布时间】:2018-08-21 13:44:33
【问题描述】:

抱歉打扰,我试图在我的 LAMP 服务器上使用 PHP 代码创建批处理文件夹。我的代码附在下面:

enter code here


<?php

 **//sample .html template** 

 $out1 = 
 "<html>
  <head>
  <title>Test Page</title>
  </head>
  <body>
    GGYY der 
  </body>
  </html>";

 **//fetch folder names from .txt file under my website main directory**

 $file_name="DirName.txt";
 $fp=fopen($file_name,'r');
 $content = array();
 $i =0;
 while(!feof($fp)){ 
 $buffer=fgets($fp,4096);
 $content[$i]=$buffer;
 $i++;
 }

 **//create folders base on $content size**

 for($j=0; $j<sizeof($content); $j++){
   if(mkdir($content[$j],0777))
     echo "folder created"."<br>";
   else
     echo "fail to create"."<br>";

 **//create a .html file in created folder** 
 $mycat  = fopen ("./$content[$j]/mycat.html","w");

 **//use copy template into mycat.html** 
 fwrite($mycat, $out1);
 fclose ($mycat);
 echo "Success";    
 }
 fclose($fp);
 ?>

根据我的代码,似乎我确实一键创建了几个文件夹,但是当我尝试通过 SSH FTP 连接访问这些文件夹时,它显示“目录 /xxx/www/xxx/Aquarius : no such文件或目录” 即使该目录上有文件夹图标。

我尝试通过 Ubuntu 命令行连接到我的服务器,cd 到该专用目录并输入 ls 命令, 它显示我刚刚使用“??”创建的所有文件夹在文件夹名称后标记。 而且我无法删除该文件夹或访问该文件夹。

我已经花了一整天的时间,找不到答案。 如果有人可以帮助我,我们将不胜感激。

【问题讨论】:

  • 请添加 DirName.txt 的内容(或部分内容)。我怀疑你有隐藏的字符,使可怕的名字搞砸了。如果该文件是在 Windows 上创建的,则可能是 \r\n。在创建文件夹之前,每行的 trim() 可能是一个很好的解决方法。现在要删除具有奇怪名称的目录,查看ls -i 以显示inode 编号,并查看find -inum &lt;NUMBER&gt; -exec rmdir {} \; 将它们清除。
  • @Nic3550 建议对我有用,在创建文件夹之前使用 trim() 之后,问题解决了!我认为你在 Windows 下创建 .txt 文件是对的,它会导致问题,我下次应该避免这种情况。非常感谢您的帮助!!
  • 我将我的评论复制到答案字段中,如果您接受,我将不胜感激。谢谢!

标签: php html apache lamp


【解决方案1】:

我怀疑你有隐藏的字符,使可怕的名字混乱。如果该文件是在 Windows 上创建的,则可能是 \r\n。

在创建文件夹之前每行的 trim() 可能是一个很好的解决方法。

现在要删除具有奇怪名称的目录,查看 ls -i 以显示 inode 编号,并查看 find -inum &lt;NUMBER&gt; -exec rmdir {} \; 以清除它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-08
    • 2021-07-15
    • 1970-01-01
    • 2016-05-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多