За последние 24 часа нас посетили 24174 программиста и 1543 робота. Сейчас ищут 1293 программиста ...

Получение имен файлов из каталога

Тема в разделе "Прочие вопросы по PHP", создана пользователем Dikobraska, 14 мар 2024.

  1. Dikobraska

    Dikobraska Новичок

    С нами с:
    14 мар 2024
    Сообщения:
    1
    Симпатии:
    0
    Всем доброго! У меня возникла проблема в получении имен файлов в создаваемом каталоге. Имеется код, он рабочий. В нем также закомментированные строки которые также работают и создают запись в файл. Суть в том ,что я не могу получить имена созданных файлов если использую закомментированный код. Второй файл, это что выводит в игру полученные имена из каталога. Кто то может знает в чем ошибка.
    PHP:
    1. <?php
    2. $email = isset($_POST['email']) ? htmlspecialchars($_POST['email']) : null;
    3. $title = isset($_POST['cartoontitle']) ? htmlspecialchars($_POST['cartoontitle']) : null;
    4. $object_id = isset($_POST['object_id']) ? htmlspecialchars($_POST['object_id']) : null;
    5. $start = isset($_POST['start_t']) ? htmlspecialchars($_POST['start_t']) : null;
    6. $layers = isset($_POST['layers']) ? htmlspecialchars($_POST['layers']) : null;
    7. $position_x = isset($_POST['position_x']) ? htmlspecialchars($_POST['position_x']) : null;
    8. $position_y = isset($_POST['position_y']) ? htmlspecialchars($_POST['position_y']) : null;
    9. $scale_x = isset($_POST['scale_x']) ? htmlspecialchars($_POST['scale_x']) : null;
    10. $scale_y = isset($_POST['scale_y']) ? htmlspecialchars($_POST['scale_y']) : null;
    11. $rotate = isset($_POST['rotate']) ? htmlspecialchars($_POST['rotate']) : null;
    12. $finish = isset($_POST['finish_t']) ? htmlspecialchars($_POST['finish_t']) : null;
    13. //$strone = "0|1|66,10|-7,90|3,00|3,00|0|0";
    14. $str = "*" . $start . "|" . $layers . "|" . $position_x . "|" . $position_y . "|" . $scale_x . "|" . $scale_y . "|" . $rotate . "|" . $finish;
    15. $filetitle = $_SERVER['DOCUMENT_ROOT'] . '/cartoon/file/' . $email . '/' . $title . '/' . $object_id . '.txt';
    16. if ($_SERVER['REQUEST_METHOD'] === 'POST')
    17.     {
    18.         if ($email && $title)
    19.         {
    20.             if (file_exists($_SERVER['DOCUMENT_ROOT'] . '/cartoon/file/' . $email . '/' . $title))
    21.             {
    22.                 mkdir($_SERVER['DOCUMENT_ROOT'] . '/cartoon/file/' . $email . '/' . $title);
    23.                 $fh = fopen ($filetitle, 'c');
    24.                 fseek($fh, 0, SEEK_END);
    25.                 $ret = fwrite($fh,$str);
    26.                 fclose($fh);
    27.                 if ($ret === false)
    28.                 die("Fwrite failed");
    29.                 echo ("Success");
    30.             }
    31.         }
    32.         /*
    33.        
    34.         if ($email && $title)
    35.         {
    36.             if (file_exists($_SERVER['DOCUMENT_ROOT'] . '/cartoon/file/' . $email . '/' . $title)) . '/' . $object_id . '.txt'))
    37.             {
    38.                 $fh = fopen ($filetitle, 'c');
    39.                 fseek($fh, 0, SEEK_END);
    40.                 $ret = fwrite($fh,$str);
    41.                 fclose($fh);
    42.                 if ($ret === false)
    43.                 die("Fwrite failed");
    44.                 echo ("Success");
    45.             }
    46.             else
    47.             {
    48.                 mkdir($_SERVER['DOCUMENT_ROOT'] . '/cartoon/file/' . $email . '/' . $title);
    49.                 $fh = fopen ($filetitle, 'c');
    50.                 fseek($fh, 0, SEEK_END);
    51.                 $ret = fwrite($fh,$strone);
    52.                 fclose($fh);
    53.                 if ($ret === false)
    54.                 die("Fwrite failed");
    55.                 echo ("Success");
    56.             }
    57.         }
    58.         */
    59.         else httpNotFound();
    60.     }
    61. if ($_SERVER['REQUEST_METHOD'] === 'GET')
    62.     {
    63.         $request_uri = explode("/", $_SERVER['REQUEST_URI']);
    64.             if (count($request_uri) == 4 && $request_uri[1] == 'cartoon/file')
    65.                 {
    66.                     $email = $request_uri[2];
    67.                     $title = $request_uri[3];
    68.                     $filetitle = $_SERVER['DOCUMENT_ROOT'] . '/cartoon/file/' . $email . '/' . $title;
    69.                 }
    70.     }
    71. if (file_exists($filetitle)) echo file_get_contents($filetitle);
    72. else httpNotFound();  
    73. function httpNotFound()
    74. {
    75.     http_response_code(404);
    76.     header('Content-type: text/html');
    77.     echo <<<HTML
    78. <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
    79. <html><head>
    80. <title>404 Not Found</title>
    81. </head><body>
    82. <h1>Not Found</h1>
    83. <p>The requested URL was not found on this server.</p>
    84. </body></html>
    85. HTML;
    86.     exit;
    87. }
    PHP:
    1. <?php
    2. $email = isset($_POST['email']) ? htmlspecialchars($_POST['email']) : null;
    3. $title = isset($_POST['cartoontitle']) ? htmlspecialchars($_POST['cartoontitle']) : null;
    4. $filetitle = $_SERVER['DOCUMENT_ROOT'] . '/cartoon/file/' . $email . '/' . $title;
    5. if ($_SERVER['REQUEST_METHOD'] === 'POST')
    6. {
    7.     if ($email && $title)
    8.     {
    9.         $arrFiles = array();
    10.         $objDir = dir($filetitle);
    11.         while (false !== ($entry = $objDir->read()))
    12.             {
    13.                 if ($entry != '.' && $entry != '..' )
    14.                 {
    15.                     $arrFiles[] = $entry;
    16.                 }
    17.             }
    18.             foreach($arrFiles as $array_max)
    19.             {
    20.                 $fileName= pathinfo($array_max, PATHINFO_FILENAME );
    21.                 echo ("|" . $fileName);
    22.             }  
    23.         $objDir->close();
    24.     }
    25. }
    26. ?>
     
  2. Vladimir Kheifets

    Vladimir Kheifets Новичок

    С нами с:
    23 сен 2023
    Сообщения:
    372
    Симпатии:
    68
    Адрес:
    Бавария, Германия
    Добрый день!
    Про то, что не закомментировано и как Вы утверждаете работает.
    PHP:
    1. if (file_exists($_SERVER['DOCUMENT_ROOT'] . '/cartoon/file/' . $email . '/' . $title))
    2. {
    3.   mkdir($_SERVER['DOCUMENT_ROOT'] . '/cartoon/file/' . $email . '/' . $title);
    4.   $fh = fopen ($filetitle, 'c');
    5.   fseek($fh, 0, SEEK_END);
    6.   $ret = fwrite($fh,$str);
    7.   fclose($fh);
    8.   if ($ret === false)
    9.   die("Fwrite failed");
    10.   echo ("Success");
    11. }
    Здесь Вы создаёте директорию если она существует, в противном случае ничего не происходит.
    Если включён E_WARNING, то будет выдаваться предупреждение и mkdir вернёт false.
    Поробуйте переделать так:
    PHP:
    1. $dirName = $_SERVER['DOCUMENT_ROOT']."/cartoon/file/$email/$title";
    2. $filetitle = "$dirName/$object_id.txt";
    3. if(!file_exists($dirName)) mkdir($dirName);  
    4. $fh = fopen ($filetitle, 'c');
    5. fseek($fh, 0, SEEK_END);
    6. $ret = fwrite($fh, $str);
    7. fclose($fh);
    8. if ($ret === false)
    9.   die("Fwrite failed");
    10. else
    11.   echo ("Success");
    Удачи!