Приветствую , имею небольшой код для публикации списка файлов на странице он был написан еще под php5и работал под php7 (не мной) Сейчас потребовалось обновить сервер до 8.2. Скрипт работать перестал. Пока я развернул руками параллельно еще и php 7.4 , но хотелось бы от него избавится. Ругается он на функцию get_magic_quotes_gpc() которую убрали в 8 версии , но не понимаю как и чем ее заменить и что она делает: Код (Text): if(get_magic_quotes_gpc()) $folder = stripslashes($_GET['folder']); else $folder = $_GET['folder'];
Привет! Это пока-что он ругается только на эту функцию, а дальше думаю будет сыр не в масле Функция использовалась для автоматического экранирования. Просто убери её к чертям. Заменять её ничем не нужно. Используй заранее подготовленные запросы, mysqli_ , pdo , переписывай запросы (select, insert) Т.к. ты работаешь с файловой системой, я думаю что этого будет достаточно PHP: $folder = filter_input(INPUT_GET, 'folder', FILTER_SANITIZE_STRING); $folder = realpath($folder); // реальный путь if (strpos($folder, '/your/base/path') !== 0) { throw new Exception('Неверный путь'); }
Спасибо! просто загомонил эту функцию , и else Да выполз некий "сыр" - ног незначительный в коде есть "самопальная" функция подотчета объема папки Код (Text): function folder_size($path) { $folder_size = `du -s $path`; $size_array = explode("\t", $folder_size); return $size_array[0]*1024; } пока придушил буду смотреть как современными методами подсчитать объем, или вообще плюнуть на нее. остальное вреде работает p.s. ну Вот теперь от этих разговоров про сыр и масло , не захотелось будерброд ....
Добрый день! Замените function folder_size на PHP: function folder_size($path) { return array_sum(array_map('filesize', glob("{$path}/*.*"))); } Удачи!
Зачем ? Есть для этого всего одна функция https://www.php.net/manual/ru/function.disk-total-space.php
Добрый день! Doc написал: была показана нерабочая функция, которая суммировала веса всех файлов в папке. Переделал эту функцию. Зачем? Если требуется распечатать список файлов в директории с указанием их типов и размеров и в конце показать общий размер папки, то функция disk_total_space не подходит. Если применить disk_total_space и упомянутую выше функцию, то результат будет отличаться. p.s. Между прочим, если посмотреть свойства папки, то выводится два отличающихся значения: размер и размер на носителе данных. Удачи!