путь — файл не найден с поддоменом и функцией system () php

В 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. это было уже активировано в обычном домене, но не для поддоменов. думаю, я мог подумать об этом раньше. Хотя ваши ответы не привели меня к тому, как решить эту проблему, я все же благодарю вас за ваш вклад, поскольку он шел в том же направлении, что и я пытался решить его сам в последние дни.

0

Решение

Команда shell не обязательно примет ваш корень файла таким же, как команда php (одна будет корневым каталогом пользователя, а другая, я думаю, будет веб-сервером), используйте абсолютные пути в команде shell, и это будет наверное работай как хочешь.

Вы можете выяснить, где находятся два URL с помощью команды file, используя pwd, например

echo system('pwd');

Или вы могли бы использовать FINFO открыть вместо команды оболочки, которая должна избежать проблемы.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]