В корне сайта есть каталог ./temp/с
лог файлами по заявкам.
Есть такой код:
$scandir = scandir('./temp/', TRUE);
Который получает список заявок:
[0] => 23339_19-09-2017_14:34:15_post.log
[1] => 23339_19-09-2017_14:34:15_charge.log
[2] => 23316_15-09-2017_03:37:20_2co.log
[3] => 23316_15-09-2017_03:37:10_post.log
[4] => 23316_15-09-2017_03:37:10_charge.log
Мне нужно написать функцию, которая будет находить имя файла по id
заказа.
Например: Хочу получить имя файла по id = 23316
, функция должна выдать имя файла 23316_15-09-2017_03:37:10_post.log
Этот вариант найдет все файлы, начинающиеся с 23316
и заканчивающиеся на post.log
$need = '23316';
$array = [
'23339_19-09-2017_14:34:15_post.log',
'23316_15-09-2017_03:37:20_2co.log',
'23339_19-09-2017_14:34:15_charge.log',
'23316_15-09-2017_03:37:10_post.log'
];
echo '<pre>', print_r(need_file($array, $need), 1), '</pre>';
function need_file($arr, $need) {
return array_filter($arr, function($item) use($need) {
return preg_match('~^'. $need .'.+_post.log$~', $item);
});
}
$files = [
0 => '23339_19-09-2017_14:34:15_post.log',
1 => '23339_19-09-2017_14:34:15_charge.log',
2 => '23316_15-09-2017_03:37:20_2co.log',
3 => '23316_15-09-2017_03:37:10_post.log',
4 => '23316_15-09-2017_03:37:10_charge.log'
];
Мне нужно написать функцию, которая будет находить имя файла по id
заказа.
function findLogById($id){
global $files;
foreach($files as $f){
if(preg_match("/^$id.+_post.log$/i", $f)){
return $f;
}
}
throw new Exception("no log file for ID#$id");
}
выведет первый подходящий файл.
А функция glob() интереснее (примеры на моих данных):
$id = '59';
$delimiter = '-';
$tail = '.7z';
$arr = glob("{$id}{$delimiter}*{$tail}");
var_dump($arr);
Результат
array(3) {
[0]=>
string(10) "59-0020.7z"
[1]=>
string(10) "59-0021.7z"
[2]=>
string(10) "59-0022.7z"
}
$folder = '../bin/php/php-7.2.0RC4-Win32-VC15-x86/';
$id = 'lib';
$delimiter = '';
$tail = '.dll';
$arr = glob("{$folder}{$id}{$delimiter}*{$tail}");
var_dump($arr);
Результат
array(7) {
[0]=>
string(56) "../bin/php/php-7.2.0RC4-Win32-VC15-x86/libcrypto-1_1.dll"
[1]=>
string(53) "../bin/php/php-7.2.0RC4-Win32-VC15-x86/libenchant.dll"
[2]=>
string(48) "../bin/php/php-7.2.0RC4-Win32-VC15-x86/libpq.dll"
[3]=>
string(50) "../bin/php/php-7.2.0RC4-Win32-VC15-x86/libsasl.dll"
[4]=>
string(52) "../bin/php/php-7.2.0RC4-Win32-VC15-x86/libsodium.dll"
[5]=>
string(50) "../bin/php/php-7.2.0RC4-Win32-VC15-x86/libssh2.dll"
[6]=>
string(53) "../bin/php/php-7.2.0RC4-Win32-VC15-x86/libssl-1_1.dll"
}
Добрый день! Делаю некотрые переделки в сайте и не могу разобраться с выводом и работой такого дела как:
Пытаюсь сделать проверку авторизации пользователяДелаю проверка по нику, а потом нужно как то получить пароль и сравнить
Из прошлого вопроса у меня хорошо получилось отправить и принять кавычки через функцию htmlspecialchars (прописал там где отправлял в ссылке и там...