PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (106): В начало « ... 12 13 14 15 [16] 17 18 19 20 ... » В конец
Найдено сообщений: 1581
Строитель
Отправлено: 01 Ноября, 2018 - 17:54:35 • Тема: Как сканировать файлы и папки • Форум: Вопросы новичков
Ответов: 23 Просмотров: 1209
tundramani пишет: надо урезать этот код так чтобы получить только имена папок в папке Документы
А структура json при этом какой должна принять вид?
Строитель
Отправлено: 01 Ноября, 2018 - 16:58:21 • Тема: Как сканировать файлы и папки • Форум: Вопросы новичков
Ответов: 23 Просмотров: 1209
tundramani PHP:
скопировать код в буфер обмена
$dir = __DIR__ . '/documents' ;
$object = [ ] ;
$temp = $dir . DIRECTORY_SEPARATOR . $item ;
if ( $item != '.' && $item != '..' && is_dir ( $temp ) ) { foreach ( scandir ( $temp ) as $elem ) { if ( $elem != '.' && $elem != '..' && strstr ( $elem , '.' ) == '.html' ) { $object [ $item ] = strstr ( $elem , '.' , true ) ; }
}
}
}
(Добавление)
Подправите код под вашу версию PHP, и не забудьте при необходимости подкорректировать $dir = __DIR__ . '/documents';
Строитель
Отправлено: 01 Ноября, 2018 - 15:08:07 • Тема: Как сканировать файлы и папки • Форум: Вопросы новичков
Ответов: 23 Просмотров: 1209
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 Просмотров: 1209
tundramani пишет: не понимаю что такое __DIR__
Учитесь пользоваться поисковой системой - без неё никак в этой сфере деятельности: Волшебные константы
(Добавление)
tundramani пишет: и не вижу в коде поиск по расширению
В поиске по расширению вроде бы небыло необходимости, т.к.:
Цитата: однотипные данные: файлы и папки - один из которых это сам документ *.html
Вот вариант с поиском по расширению:
PHP:
скопировать код в буфер обмена
$dir = __DIR__ . '/documents' ;
$object = [ ] ;
$temp = $dir . DIRECTORY_SEPARATOR . $item ;
if ( $item != '.' && $item != '..' && is_dir ( $temp ) ) { foreach ( scandir ( $temp ) as $elem ) { if ( $elem != '.' && $elem != '..' && strstr ( $elem , '.' ) == '.html' ) { $object [ $item ] = $elem ;
}
}
}
}
Строитель
Отправлено: 01 Ноября, 2018 - 14:09:35 • Тема: Как сканировать файлы и папки • Форум: Вопросы новичков
Ответов: 23 Просмотров: 1209
tundramani пишет: нужно в каждой найти в корне имя единственного html-файла
Рекурсивно искать? Т.е., тут "каждый документ это папка с данными: файлы и папки " - папки могут быть вложены? Или структура такая:
?
Строитель
Отправлено: 31 Октября, 2018 - 15:30:30 • Тема: Как сканировать файлы и папки • Форум: Вопросы новичков
Ответов: 23 Просмотров: 1209
tundramani , так это и есть аналог вашего js-варианта. А чтоб понять, как он работает, сохраните код из моего листинга в php-файл и запустите его в браузере (разумеется, файл должен быть на сервере) . Всё, что файл сгенерирует, вы увидите в браузере.
Строитель
Отправлено: 30 Октября, 2018 - 09:55:29 • Тема: Вывод из массива • Форум: Напишите за меня, пожалуйста
Ответов: 20 Просмотров: 366
Glomar пишет: Правда я ваще не могу врубится как Вы это сделали.
Ну мне тоже пришлось подумать несколько часов над вашей задачкой ))
Я могу расставить комментарии в коде, если необходимо.
(Добавление)
PHP:
скопировать код в буфер обмена
function parse_array( & $array ) {
// Это инициализация переменных $keys и $trigger. Объявление этих переменных
// вынесено в отдельную функцию потому, что оно используется более одного
// раза в скрипте. А почему именно в анонимной функции? - потому, что
// она больше нигде не используется.
$var_ini = function ( ) { return [ 'keys' => [ ] , 'trigger' => 0] ; } ;
foreach ( $array as & $arr ) {
// Объявление переменных $keys и $trigger
foreach ( $arr as $key => & $item ) {
// Получить последний символ из текущего элемента массива
// Если последний символ равен нулю, установить значение
// переключателя $trigger равным единице
$char != 0 ?: $trigger = 1 ;
// Если переключатель активирован, сохранять текущий ключ $key
// и последний символ из текущего элемента массива $char
// в массив $keys
! $trigger ?: $keys [ $key ] = $char ;
// Если значения всех элементов массива $keys равны строке "0123456789",
// выполнить следующие действия:
if ( join ( $keys ) == '0123456789' ) { // 1. Получить первый ключ из массива в переменную $k
// 2. Получить подстроку из первого элемента массива (без последнего символа)
$substr = substr ( $arr [ $k ] , 0
, - 1
) ; // 3. Произвести замену десяти элементов в массиве $arr, начиная с позиции $k
// 4. Обнулить параметры (объявление переменных $keys и $trigger)
}
}
}
}
Строитель
Отправлено: 29 Октября, 2018 - 23:22:08 • Тема: Вывод из массива • Форум: Напишите за меня, пожалуйста
Ответов: 20 Просмотров: 366
Glomar , написал решениеСпойлер (Отобразить ) PHP:
скопировать код в буфер обмена
"2050000" ,
"2050001" ,
"2050002" ,
"2050003" ,
"2050004" ,
"2050005" ,
"2050006" ,
"2050007" ,
"2050008"
) ,
"2050010" ,
"2050011" ,
"2050012" ,
"2050013" ,
"2050014" ,
"2050015" ,
"2050016" ,
"2050017" ,
"2050018" ,
"2050019"
) ,
"2050030" ,
"2050031" ,
"2050032" ,
"2050033" ,
"2050034" ,
"2050035" ,
"2050036" ,
"2050037" ,
"2050038" ,
"2050039"
) ,
"2050022" ,
"2050023" ,
"2050024" ,
"2050025" ,
"2050026" ,
"2050028" ,
"2050029" ,
"2050030" ,
"2050031"
) ,
"2025100" , // <<
"2025101" ,
"2025102" ,
"2025103" ,
"2025104" ,
"2025105" ,
"2025106" ,
'2025107' ,
"2025108" ,
"2025109" ,
"2025110" , // <<
"2025111" ,
"2025112" ,
"2025113" ,
"2025114" ,
"2025115" ,
"2025116" ,
"2025117" ,
"2025118" ,
"2025119" ,
"2025120" ,
"2025121" ,
"2025122" ,
"2025123" ,
"2025124" ,
"2025125"
)
) ;
parse_array( $array ) ;
function parse_array( & $array ) {
$var_ini = function ( ) { return [ 'keys' => [ ] , 'trigger' => 0] ; } ;
foreach ( $array as & $arr ) {
foreach ( $arr as $key => & $item ) {
$char != 0 ?: $trigger = 1 ;
! $trigger ?: $keys [ $key ] = $char ;
if ( join ( $keys ) == '0123456789' ) { $substr = substr ( $arr [ $k ] , 0
, - 1
) ; }
}
}
}
Результат:Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
0 =>
0 => string '2050000'
1 => string '2050001'
2 => string '2050002'
3 => string '2050003'
4 => string '2050004'
5 => string '2050005'
6 => string '2050006'
7 => string '2050007'
8 => string '2050008'
1 =>
0 => string '205001'
2 =>
0 => string '205003'
3 =>
0 => string '2050009'
4 =>
0 => string '2050020'
5 =>
0 => string '2050022'
1 => string '2050023'
2 => string '2050024'
3 => string '2050025'
4 => string '2050026'
5 => string '2050028'
6 => string '2050029'
7 => string '2050030'
8 => string '2050031'
6 =>
0 => string '202510'
1 => string '202511'
2 => string '2025120'
3 => string '2025121'
4 => string '2025122'
5 => string '2025123'
6 => string '2025124'
7 => string '2025125'
Строитель
Отправлено: 29 Октября, 2018 - 15:47:36 • Тема: Вывод из массива • Форум: Напишите за меня, пожалуйста
Ответов: 20 Просмотров: 366
Glomar пишет: Там должна идти замена в массиве.
Там идёт замена в массиве, а заменяемые значения я подправил:Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
"2050000" ,
"2050001" ,
"2050002" ,
"2050003" ,
"2050004" ,
"2050005" ,
"2050006" ,
"2050007" ,
"2050008"
) ,
"2050011" ,
"2050012" ,
"2050013" ,
"2050014" ,
"2050015" ,
"2050016" ,
"2050017" ,
"2050018" ,
"2050019"
) ,
"2050030" ,
"2050031" ,
"2050032" ,
"2050033" ,
"2050034" ,
"2050035" ,
"2050036" ,
"2050037" ,
"2050038" ,
"2050039"
) ,
"2050022" ,
"2050023" ,
"2050024" ,
"2050025" ,
"2050026" ,
"2050028" ,
"2050029" ,
"2050030" ,
"2050031"
) ,
) ;
foreach ( $array as & $arr ) {
$tmp = [ ] ;
foreach ( $arr as $k => & $val ) {
}
}
}
Строитель
Отправлено: 29 Октября, 2018 - 14:42:13 • Тема: Вывод из массива • Форум: Напишите за меня, пожалуйста
Ответов: 20 Просмотров: 366
Glomar , вроде бы такСпойлер (Отобразить ) PHP:
скопировать код в буфер обмена
array ( "2050000" , "2050001" , "2050002" , "2050003" , "2050004" , "2050005" , "2050006" , "2050007" , "2050008" ) , array ( "2050010" , "2050011" , "2050012" , "2050013" , "2050014" , "2050015" , "2050016" , "2050017" , "2050018" , "2050019" ) , array ( "2050030" , "2050031" , "2050032" , "2050033" , "2050034" , "2050035" , "2050036" , "2050037" , "2050038" , "2050039" ) , array ( "2050022" , "2050023" , "2050024" , "2050025" , "2050026" , "2050028" , "2050029" , "2050030" , "2050031" ) , ) ;
foreach ( $array as & $arr ) {
$tmp = [ ] ;
foreach ( $arr as & $val ) {
}
}
}
/* Результат:
Array
(
[0] => Array
(
[0] => 2050000
[1] => 2050001
[2] => 2050002
[3] => 2050003
[4] => 2050004
[5] => 2050005
[6] => 2050006
[7] => 2050007
[8] => 2050008
)
[1] => Array
(
[0] => 2050010
[1] => 2050011
[2] => 2050012
[3] => 2050013
[4] => 2050014
[5] => 2050015
[6] => 2050016
[7] => 2050017
[8] => 2050018
[9] => 205001
)
[2] => Array
(
[0] => 2050030
[1] => 2050031
[2] => 2050032
[3] => 2050033
[4] => 2050034
[5] => 2050035
[6] => 2050036
[7] => 2050037
[8] => 2050038
[9] => 205003
)
[3] => Array
(
[0] => 2050009
)
[4] => Array
(
[0] => 2050020
)
[5] => Array
(
[0] => 2050022
[1] => 2050023
[2] => 2050024
[3] => 2050025
[4] => 2050026
[5] => 2050028
[6] => 2050029
[7] => 2050030
[8] => 2050031
)
)
*/
Строитель
Отправлено: 29 Октября, 2018 - 13:37:00 • Тема: Вывод из массива • Форум: Напишите за меня, пожалуйста
Ответов: 20 Просмотров: 366
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 ExBB FM 1.0 RC1. InvisionExBB