В PHP-скрипте я хочу проверить определенные типы файлов, которые я делаю так:
$ info = explode (‘/’, system («file -bi — uploads / img / test.gif»));
если ($ info [0])
эхо ‘хорошо’;
Это работает просто отлично, если URL-адрес не имеет субдомена, например f.e domain.com, но не работает в en.domain.com. Похоже, что файл просто не найден.
С другой стороны, если в том же скрипте я проверяю наличие файла:
if (file_exists («uploads / img / test.gif»))
эхо «существует»;
Файл найден, где текущий URL — это domain.com или en.domain.com. Почему файл не найден, если используется функция system ()?
решена
Друзья, я наконец-то нашел решение, спустя почти три рабочих дня. Может быть, вы можете себе представить, как я рад.
решение было в опциях php для активации mod_rewrite. это было уже активировано в обычном домене, но не для поддоменов. думаю, я мог подумать об этом раньше. Хотя ваши ответы не привели меня к тому, как решить эту проблему, я все же благодарю вас за ваш вклад, поскольку он шел в том же направлении, что и я пытался решить его сам в последние дни.
Команда shell не обязательно примет ваш корень файла таким же, как команда php (одна будет корневым каталогом пользователя, а другая, я думаю, будет веб-сервером), используйте абсолютные пути в команде shell, и это будет наверное работай как хочешь.
Вы можете выяснить, где находятся два URL с помощью команды file, используя pwd, например
echo system('pwd');
Или вы могли бы использовать FINFO открыть вместо команды оболочки, которая должна избежать проблемы.
Других решений пока нет …