PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (106): В начало « ... 12 13 14 15 [16] 17 18 19 20 ... » В конец

> Найдено сообщений: 1581
Строитель Отправлено: 01 Ноября, 2018 - 17:54:35 • Тема: Как сканировать файлы и папки • Форум: Вопросы новичков

Ответов: 23
Просмотров: 1128
tundramani пишет:
надо урезать этот код так чтобы получить только имена папок в папке Документы
А структура json при этом какой должна принять вид?
Строитель Отправлено: 01 Ноября, 2018 - 16:58:21 • Тема: Как сканировать файлы и папки • Форум: Вопросы новичков

Ответов: 23
Просмотров: 1128
tundramani
PHP:
скопировать код в буфер обмена
  1. $dir = __DIR__ . '/documents';
  2. $object = [];
  3.  
  4. foreach (scandir($dir) as $item) {
  5.     $temp = $dir . DIRECTORY_SEPARATOR . $item;
  6.     if ($item != '.' && $item != '..' && is_dir($temp)) {
  7.         foreach (scandir($temp) as $elem) {
  8.             if ($elem != '.' && $elem != '..' && strstr($elem, '.') == '.html') {
  9.                 $object[$item] = strstr($elem, '.', true);
  10.             }
  11.         }
  12.     }
  13. }
  14.  
  15. $json = json_encode($object);
  16. print_r( $json );

(Добавление)
Подправите код под вашу версию PHP, и не забудьте при необходимости подкорректировать $dir = __DIR__ . '/documents';
Строитель Отправлено: 01 Ноября, 2018 - 15:44:58 • Тема: Как сканировать файлы и папки • Форум: Вопросы новичков

Ответов: 23
Просмотров: 1128
tundramani, ну тогда вооружайтесь терпением и вперёд исправлять ошибки )
Строитель Отправлено: 01 Ноября, 2018 - 15:08:07 • Тема: Как сканировать файлы и папки • Форум: Вопросы новичков

Ответов: 23
Просмотров: 1128
tundramani пишет:
а если просто так сделать
Да, можно и так - это зависит от расположения php-скрипта. У меня к примеру на рабочем ПК php не установлен, и для тестирования скриптов я использую вывод в консоль. И в моём случае относительные ссылки вида ./ или ../ не подходят, поэтому используется константа __DIR__ -- для получения пути к скрипту от корня диска.

На счёт магических констант - если вы не понимаете их предназначения, это означает что вам было лень прочитать материал по ссылке.
tundramani пишет:
PHP Parse error: syntax error, unexpected '[' in /Applications/MAMP/htdocs/сканир овать_документы.php on line 3
Версия php у вас древняя однако. Заменяйте объявление массива $object = []; на устаревший аналог $object = array();
Строитель Отправлено: 01 Ноября, 2018 - 14:40:26 • Тема: Как сканировать файлы и папки • Форум: Вопросы новичков

Ответов: 23
Просмотров: 1128
tundramani пишет:
не понимаю что такое __DIR__
Учитесь пользоваться поисковой системой - без неё никак в этой сфере деятельности: Волшебные константы
(Добавление)
tundramani пишет:
и не вижу в коде поиск по расширению
В поиске по расширению вроде бы небыло необходимости, т.к.:
Цитата:
однотипные данные: файлы и папки - один из которых это сам документ *.html
Вот вариант с поиском по расширению:
PHP:
скопировать код в буфер обмена
  1. $dir = __DIR__ . '/documents';
  2. $object = [];
  3.  
  4. foreach (scandir($dir) as $item) {
  5.     $temp = $dir . DIRECTORY_SEPARATOR . $item;
  6.     if ($item != '.' && $item != '..' && is_dir($temp)) {
  7.         foreach (scandir($temp) as $elem) {
  8.             if ($elem != '.' && $elem != '..' && strstr($elem, '.') == '.html') {
  9.                 $object[$item] = $elem;
  10.             }
  11.         }
  12.     }
  13. }
  14.  
  15. $json = json_encode($object);
  16. print_r( $json );
Строитель Отправлено: 01 Ноября, 2018 - 14:32:12 • Тема: Как сканировать файлы и папки • Форум: Вопросы новичков

Ответов: 23
Просмотров: 1128
tundramani,
PHP:
скопировать код в буфер обмена
  1. $dir = __DIR__ . '/documents';
  2. $object = [];
  3.  
  4. foreach (scandir($dir) as $item) {
  5.     $temp = $dir . DIRECTORY_SEPARATOR . $item;
  6.     if ($item != '.' && $item != '..' && is_dir($temp)) {
  7.         foreach (scandir($temp) as $elem) {
  8.             if ($elem != '.' && $elem != '..') {
  9.                 $object[$item] = $elem;
  10.             }
  11.         }
  12.     }
  13. }
  14.  
  15. $json = json_encode($object);
  16. print_r( $json );
Строитель Отправлено: 01 Ноября, 2018 - 14:09:35 • Тема: Как сканировать файлы и папки • Форум: Вопросы новичков

Ответов: 23
Просмотров: 1128
tundramani пишет:
нужно в каждой найти в корне имя единственного html-файла
Рекурсивно искать? Т.е., тут "каждый документ это папка с данными: файлы и папки" - папки могут быть вложены? Или структура такая:

CODE (html):
скопировать код в буфер обмена
  1.  
  2. /documents
  3. ..../dir1
  4. ..../dir2
  5. ......../file1.html
  6. ......../file2.html
  7. ..../dir3
  8. ..../file3.html
  9.  


?
Строитель Отправлено: 31 Октября, 2018 - 15:30:30 • Тема: Как сканировать файлы и папки • Форум: Вопросы новичков

Ответов: 23
Просмотров: 1128
tundramani, так это и есть аналог вашего js-варианта. А чтоб понять, как он работает, сохраните код из моего листинга в php-файл и запустите его в браузере (разумеется, файл должен быть на сервере). Всё, что файл сгенерирует, вы увидите в браузере.
Строитель Отправлено: 31 Октября, 2018 - 15:10:43 • Тема: Как сканировать файлы и папки • Форум: Вопросы новичков

Ответов: 23
Просмотров: 1128
tundramani
Спойлер (Отобразить)
?
Строитель Отправлено: 30 Октября, 2018 - 09:55:29 • Тема: Вывод из массива • Форум: Напишите за меня, пожалуйста

Ответов: 20
Просмотров: 316
Glomar пишет:
Правда я ваще не могу врубится как Вы это сделали.

Ну мне тоже пришлось подумать несколько часов над вашей задачкой ))
Я могу расставить комментарии в коде, если необходимо.
(Добавление)
PHP:
скопировать код в буфер обмена
  1. function parse_array(&$array){
  2.     // Это инициализация переменных $keys и $trigger. Объявление этих переменных
  3.     // вынесено в отдельную функцию потому, что оно используется более одного
  4.     // раза в скрипте. А почему именно в анонимной функции? - потому, что
  5.     // она больше нигде не используется.
  6.     $var_ini = function(){ return ['keys' => [], 'trigger' => 0]; };
  7.  
  8.     foreach ($array as &$arr) {
  9.         // Объявление переменных $keys и $trigger
  10.         extract( $var_ini() );
  11.         foreach ($arr as $key => &$item) {
  12.             // Получить последний символ из текущего элемента массива
  13.             $char = substr($item, -1);
  14.             // Если последний символ равен нулю, установить значение
  15.             // переключателя $trigger равным единице
  16.             $char != 0 ?: $trigger = 1;
  17.             // Если переключатель активирован, сохранять текущий ключ $key
  18.             // и последний символ из текущего элемента массива $char
  19.             // в массив $keys
  20.             ! $trigger ?: $keys[$key] = $char;
  21.             // Если значения всех элементов массива $keys равны строке "0123456789",
  22.             // выполнить следующие действия:
  23.             if (join($keys) == '0123456789') {
  24.                 // 1. Получить первый ключ из массива в переменную $k
  25.                 $k = array_keys($keys)[0];
  26.                 // 2. Получить подстроку из первого элемента массива (без последнего символа)
  27.                 $substr = substr($arr[$k], 0, -1);
  28.                 // 3. Произвести замену десяти элементов в массиве $arr, начиная с позиции $k
  29.                 array_splice($arr, $k, 10, $substr);
  30.                 // 4. Обнулить параметры (объявление переменных $keys и $trigger)
  31.                 extract( $var_ini() );
  32.             }
  33.         }
  34.     }
  35. }
Строитель Отправлено: 29 Октября, 2018 - 23:22:08 • Тема: Вывод из массива • Форум: Напишите за меня, пожалуйста

Ответов: 20
Просмотров: 316
Glomar, написал решение
Спойлер (Отобразить)
Результат:
Спойлер (Отобразить)
Строитель Отправлено: 29 Октября, 2018 - 15:47:36 • Тема: Вывод из массива • Форум: Напишите за меня, пожалуйста

Ответов: 20
Просмотров: 316
Glomar пишет:
Там должна идти замена в массиве.
Там идёт замена в массиве, а заменяемые значения я подправил:
Спойлер (Отобразить)
Строитель Отправлено: 29 Октября, 2018 - 14:42:13 • Тема: Вывод из массива • Форум: Напишите за меня, пожалуйста

Ответов: 20
Просмотров: 316
Glomar, вроде бы так
Спойлер (Отобразить)
Строитель Отправлено: 29 Октября, 2018 - 13:45:48 • Тема: Вывод из массива • Форум: Напишите за меня, пожалуйста

Ответов: 20
Просмотров: 316
Glomar, теперь понятно - чуть позже напишу свой вариант решения.
Строитель Отправлено: 29 Октября, 2018 - 13:37:00 • Тема: Вывод из массива • Форум: Напишите за меня, пожалуйста

Ответов: 20
Просмотров: 316
Glomar, т.е. получается, что из приведённого выше массива подлежат удалению эти две группы:

array("2050010","2050011","2050012","2050013","2050014","2050015","2050016","2050017","2050018","2050019"),
array("2050030","2050031","2050032","2050033","2050034","2050035","2050036","2050037","2050038","2050039"),

Верно?

Страниц (106): В начало « ... 12 13 14 15 [16] 17 18 19 20 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB