- Перестала работать функция glob() в php
- Почему функция glob() не работает с подпапками?
- Войдите, чтобы написать ответ
- Как прописать условие при котором блок показываться не будет?
- Как скачивать файлы Telegram через php более 20МБ?
- Как настроить прямой доступ к php файлу в .htaccess?
- Как исправить ошибку php Call to a member function bind_param() on boolean in?
- Почему возникает странная ошибка при создании двух EntityManagers?
- К использовать адрес для загрузки нужных данных?
- Как понять смысл php скрипта парсинга данных и восстановить его работоспособность?
- Как сделать парсер крупных сайтов и маркетплейсов на PHP, обходящий блокировки?
- Как определить интервал в расписание на php?
- Как показать определенное количество символов у ссылки а остальные скрыть?
- Минуточку внимания
- Почему не работает относительный путь в glob?
- Решение
- Решение
- Glob не дал мне никаких результатов
- Related of «Glob не дал мне никаких результатов»
- php base64_encode и glob не могут заставить работать
Перестала работать функция glob() в php
После обновления системы появился следующий глюк:
— не работает функция glob() в файлах php.
выглядит это так: простой фаил index.php:
echo __FILE__;
print_r(glob ( «*» ));
$user_info=posix_getpwuid(posix_getuid() );
print_r($user_info);
собственно вторая строчка должна вывести список файлов в текущей директории.
вместо этого она возвращает пустой массив.
третья добавлена что бы посмотреть из под какого юзера запускается сам php скрипт.
В браузере:
/home/USERNAME/www_demo/index.php
Array ( )
Array ( [name] => apache [passwd] => x [uid] => 81 [gid] => 81 [gecos] => added by portage for apache [dir] => /var/www [shell] => /bin/false )
из cli же тот же скрипт дает нормальный ответ:
# sudo -u apache php /home/USERNAME/www_demo/index.php
/home/USERNAME/www_demo/index.php
Array
(
[0] => index.php
[1] => phpinfo.php
)
Array
(
[name] => apache
[passwd] => x
[uid] => 81
[gid] => 81
[gecos] => added by portage for apache
[dir] => /var/www
[shell] => /bin/false
)
—————————————- ———-
настройки апача — дефолтные, только прописаны вхосты.
файлы php.ini для cli и apache идентичны.
# cat /etc/apache2/vhosts.d/demo.USERNAME.ru.c onf
[VirtualHost *:80]
DocumentRoot /home/USERNAME/www_demo/
ServerName demo.USERNAME.ru
ServerAlias www.demo.USERNAME.ru
ScriptAlias /bin/ «/home/USERNAME/bin/»
ErrorLog /home/USERNAME/log_demo/error_log
CustomLog /home/USERNAME/log_demo/access_log combined
[Directory /home/USERNAME/www_demo/]
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
[/Directory][/VirtualHost] [ebuild R ] www-servers/apache-2.2.11 USE=»ldap ssl suexec -debug -doc (-selinux) -sni -static -threads» APACHE2_MODULES=»actions alias asis auth_basic authn_default authn_file authz_default authz_groupfile authz_host authz_user autoindex cache dav dav_fs dav_lock deflate dir env filter headers include info log_config logio mime negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_ftp proxy_http rewrite setenvif status unique_id userdir -auth_digest -authn_alias -authn_anon -authn_dbd -authn_dbm -authz_dbm -authz_owner -cern_meta -charset_lite -dbd -disk_cache -dumpio -expires -ext_filter -file_cache -ident -imagemap -log_forensic -mem_cache -mime_magic -speling -substitute -usertrack -version -vhost_alias» APACHE2_MPMS=»-event -itk -peruser -prefork -worker» 0 kB
Форумы листал, гуглил, багтрак смотрел.
Идей нет.
Софт пересобирал несколько раз.
Почему функция glob() не работает с подпапками?
/ не входит в *
Если использовать /works/*/* то он найдет все файлы и директории в поддиректориях /works/
Войдите, чтобы написать ответ
Как прописать условие при котором блок показываться не будет?
Как скачивать файлы Telegram через php более 20МБ?
Как настроить прямой доступ к php файлу в .htaccess?
Как исправить ошибку php Call to a member function bind_param() on boolean in?
Почему возникает странная ошибка при создании двух EntityManagers?
К использовать адрес для загрузки нужных данных?
Как понять смысл php скрипта парсинга данных и восстановить его работоспособность?
Как сделать парсер крупных сайтов и маркетплейсов на PHP, обходящий блокировки?
Как определить интервал в расписание на php?
Как показать определенное количество символов у ссылки а остальные скрыть?
Минуточку внимания
- Отсутсвие рекламы с немецким VPN на Youtube почему?
- 3 подписчика
- 1 ответ
- 2 подписчика
- 0 ответов
- 2 подписчика
- 1 ответ
- 2 подписчика
- 1 ответ
- 2 подписчика
- 3 ответа
- 2 подписчика
- 1 ответ
- 2 подписчика
- 0 ответов
- 2 подписчика
- 1 ответ
- 2 подписчика
- 1 ответ
- 2 подписчика
- 3 ответа
Почему не работает относительный путь в glob?
В доках не нашёл какие-то противопоказания к применению относительных путей, поэтому:
glob(__DIR__ . '/dir/*.php'); // работает glob('dir/*.php'); // не работает
Записать в массив относительный путь с именем файла из папки(не зная полный путь папки)
Наверняка вопрос заезженный, но я не нашел(плохо искал) Нужно из вложенной папки, из директории.функця glob(), почему в мануале нет описаня знака * (звездочка)
приветствую читал о функцие glob() например: $a = glob("papka/*.PNG"); там * означает что.относительный путь к БД
как указать относительный путь к базе данных в C++ Builder 2009 ?относительный путь
Как получить относительный путь моего проекта ? и как получить относительный путь для папки.Сообщение было отмечено DefenseMinister как решение
Решение
и увидите имя текущего рабочего каталога.
Рабочим каталогом служит не папка, содержащая файл со скриптом с glob, а папка, из которой скрипт запускается (это случается при использовании include, например).
Сообщение от Para bellum
благодарю за дополнение про include, именно так и происходит: glob() находится в подключаемом файле
Добавлено через 8 минут
Para bellum, но всё-равно кое-какие сомнения у меняесть папка — app/views/layouts/Default
в ней 3 файла: header.php, main.php, footer.php
в файле main.php подключаются относительно: include ‘header.php’ и include ‘footer.php’
В чём отличие от того, как при применении glob()?
Сообщение было отмечено DefenseMinister как решение
Решение
Файлы включаются исходя из пути указанного файла, или, если путь не указан, используется путь, указанный в директиве include_path. Если файл не найден в include_path, include попытается проверить директорию, в которой находится текущий включающий скрипт и текущую рабочую директорию перед тем, как выдать ошибку.
Para bellum, типа раз main.php уже подключили по пути app/views/layouts/Default, то внутри main.php подключения производятся относительно app/views/layouts/Default/main.php?
Para bellum, ты мне на пальцах поясни
config
— autoload
— container.php
public
index.php// index.php chdir('..'); spl_autoload_register(); $container = include 'config/container.php'; // config/container.php return new Container(array_merge_recursive(. array_map(fn($file) => include $file, glob(__DIR__ . '/autoload/*.php'))));
Почему include . (fn($file) => include $file) . НЕ попытается проверить директорию, в которой находится текущий включающий скрипт и ему требуется __DIR__?
Добавлено через 6 минут
Para bellum, короче я просто не могу связать в логическое объяснение данной ситуации, хотя в бошке вроде как всё на месте после пояснения о рабочей директории, не могу простым языком пояснить сам себе, чтобы убедить окончательноДобавлено через 8 минут
Para bellum,include 'app/views/layouts/Default/main.php'; // main.php include 'header.php'; include 'footer.php';
всё работает: подключение относительно main.php — происходит
include 'config/container.php'; // container.php // мы находимся в папке config, нам из файла container.php относительно видна папка autoload // то есть нам доступно в файле container.php сделать include 'autoload/file.php' $arrays = array_map(fn($file) => include $file, glob('autoload/*.php'));
не работает: подключение относительно container.php — не происходит
Glob не дал мне никаких результатов
Я пытаюсь использовать Glob PHP для получения списка файлов на основе шаблона, а именно расширения.
$images = glob('/content/big/'.$item['id'].'.', GLOB_BRACE);
Я знаю, что в этом каталоге есть файл, а именно: 23.png, но он не отображается в массиве $ images. Я не знаю, почему нет. Я попытался сделать URL еще более абсолютным (или явным):
$images = glob('http://www.website.com/content/big/'.$item['id'].'.', GLOB_BRACE);
Может быть, Glob не установлен правильно внутри PHP? Или есть еще одна причина, по которой это не дает никаких результатов?
Related of «Glob не дал мне никаких результатов»
glob работает только с путями в файловой системе сервера, а не с URL-адресами.
http://www.website.com/content/big/ действительно может быть /var/www/site/content/big на сервере, и это тот путь, который вам нужно использовать.
Начать путь с помощью / make glob в корневой папке для этой папки, и я предполагаю, что на вашем сервере нет папки с именем /content/big/ .
Попробуйте это (используя относительный путь от корня сервера):
$images = glob('content/big/'.$item['id'].'.', GLOB_BRACE);
Или используйте абсолютный путь:
$images = glob('/var/www/site/content/big/'.$item['id'].'.', GLOB_BRACE);
ниже моя реализация, одинарные кавычки не работают с эхом, но это работает для меня. Надеюсь, поможет!
php base64_encode и glob не могут заставить работать
function data_uri($file_to_get_contents, $mime) < $contents = file_get_contents( '../images/'. $file_to_get_contents ); $base64 = base64_encode($contents); return ('data:' . $mime . ';base64,' . $base64); >
$val_img = '../images/2014-12-03/13-1-b5780ffc85f5f29d5ce43d1f4e38003f.gif';
$val_img = '../images/2014-12-03/13-1-b5780ffc85f5f29d5ce43d1f4e38003f';
echo '
', print_r($val_img, true), '
$val_img
';echo '';
См. Warning: file_get_contents(../images/Array) [function.file-get-contents]: failed to open stream: No such file or directory об ошибке Warning: file_get_contents(../images/Array) [function.file-get-contents]: failed to open stream: No such file or directory Ошибка сообщает, что в этом $contents = file_get_contents( ‘../images/’. $file_to_get_contents ); строка — ошибка. Но кажется что-то неправильное с этим $val_img = glob($val_img. ‘×.*’); Что будет правильным кодом? Вот мой код, который работает
function data_uri($file_to_get_contents, $mime) < $contents = file_get_contents( '../images/'. $file_to_get_contents ); $base64 = base64_encode($contents); return ('data:' . $mime . ';base64,' . $base64); >$val_img = '../images/2014-12-03/13-1-b5780ffc85f5f29d5ce43d1f4e38003f'; $val_img = glob( $val_img. '*' ); echo '';