Проблемы с php.ini - PullRequest
       5

Проблемы с php.ini

0 голосов
/ 22 сентября 2011

Моя проблема связана с файлом php.ini, я думаю, но это может быть что-то еще.

Допустим, у нас есть архитектура сайта, в которой внутри корневого каталога есть еще один каталог с именем img и файл с именем index.php. Внутри каталога img находится файл с именем image.jpg.

Так что в index.php, чтобы обратиться к изображению, я бы использовал /img/image.jpg.

У меня вопрос: что я должен изменить в php.ini, чтобы иметь возможность писать img/image.jpg вместо /img/image.jpg.

Спасибо

Ответы [ 3 ]

2 голосов
/ 22 сентября 2011

Относительные пути разрешаются веб-браузером, а не PHP.Невозможно переопределить это поведение на веб-сервере.

1 голос
/ 22 сентября 2011

PHP ничего не может сделать.По сути, вы можете сделать это с помощью переписывания Apache, но гораздо эффективнее использовать абсолютные пути.Вы не должны пытаться смешивать абсолютные и относительные пути, потому что это вызовет у вас проблемы только в будущем.Что не так с добавлением «/» в начале пути?

Не только это, но и чертовски запутает людей, пытающихся отладить ваш код, когда все ваши относительные пути становятся абсолютнымиApache.

0 голосов
/ 01 ноября 2011

Мой вопрос: что я должен изменить в php.ini, чтобы иметь возможность писать img/image.jpg вместо /img/image.jpg.

Это ответ на ваш вопрос, но не тот ответ, который вы хотели бы услышать. Это довольно просто, давайте сначала перечислим настройки ini:

  1. auto_prepend_file (возможно, в сочетании с include_path)

И это все. Как это работает:

Добавьте в скрипт php директиву ini. внутри этого файла вы начинаете выводить буферизацию с помощью собственной функции обратного вызова:

function callback($buffer)
{
  // slash that image that you want to write without slash
  return (str_replace("img/image.jpg", "/img/image.jpg", $buffer));
}

ob_start("callback");

Теперь вы можете писать img/image.jpg вместо /img/image.jpg, потому что ваша функция выходного фильтра переписывает ее для вас.

Но позаботьтесь о том, чтобы вы не пытались исправить это неправильно. Действует общее правило ссылок на гипертекст, см. Унифицированный идентификатор ресурса (URI): общий синтаксис , Протокол передачи гипертекста - HTTP / 1.1 и Язык разметки гипертекста - 2.0 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...