Созданы пакетные папки на сервере LAMP, но нет доступа

Извините, что прерываю, я пытался создать пакетные папки, используя коды PHP на моем сервере LAMP. Мои коды прикреплены ниже:

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-соединение, он показывает, что «Directory / xxx / www / xxx / Aquarius: нет такого файла или каталога. "Даже если в этом каталоге есть значки папок.

И я попытался подключиться к моему серверу через командную строку Ubuntu, cd в этот выделенный каталог и введите команду ls. Это показывает, что все папки, которые я только что создал, с помощью "??" отметьте сразу после названия папки. И я не могу ни удалить папку, ни получить к ней доступ.

Я уже целый день трачу на это и не могу найти ответа. Буду очень признателен, если кто-нибудь сможет мне помочь.


person Jeff Lin    schedule 13.03.2018    source источник
comment
Пожалуйста, добавьте содержимое (или его части) DirName.txt. Я подозреваю, что у вас есть скрытые символы, из-за которых ужасные имена портятся. Возможно \r\n, если этот файл был создан в Windows. trim() в каждой строке перед созданием папки может быть хорошим исправлением. Теперь, чтобы удалить каталоги со странными именами, загляните в ls -i, чтобы показать номер inode, и в find -inum <NUMBER> -exec rmdir {} \;, чтобы удалить их.   -  person Nic3500    schedule 13.03.2018
comment
@ Nic3550 У меня сработало предложение, после того как я использовал trim () перед созданием папки, проблема решена! Я думаю, что вы правы, создавая .txt файл под Windows, это вызывает проблемы, мне следует избегать этого в следующий раз. Большое спасибо за помощь !!   -  person Jeff Lin    schedule 14.03.2018
comment
Я скопировал свой комментарий в поле ответа, буду признателен, если вы его примете. Спасибо!   -  person Nic3500    schedule 14.03.2018


Ответы (1)


Я подозреваю, что у вас там спрятаны символы, из-за которых ужасные имена портятся. Вероятно, \ r \ n, если этот файл был создан в Windows.

Обрезка () каждой строки перед созданием папки может быть хорошим решением.

Теперь, чтобы удалить каталоги со странными именами, загляните в ls -i, чтобы показать номер inode, и в find -inum <NUMBER> -exec rmdir {} \;, чтобы удалить их.

person Nic3500    schedule 14.03.2018