Хотите дать имя файла в include_once php, но с корневым адресом.Как? - PullRequest
0 голосов
/ 06 сентября 2011

Я работаю на PHP с AJAX. Из-за AJAX нельзя сказать, в каком каталоге вы находитесь в конкретный момент времени. Поэтому для вызова файлов я не могу использовать фиксированный путь и имя файла. Итак, я хочу указать путь от корня до файла. Работает хорошо.

Но проблема возникает, если я хочу включить файл. Скажем, я хочу включить файл test.php, например:

include_once("http://localhost/sms/test.php");

Файл включен, но проблема:

<?php
   $i = 9;
   include_once("http://localhost/sms/test.php");
?>

test.php содержит,

<?php
  echo $i;
?>

Этот код должен выводить как:

9

... но это ничего не дает. Я знаю причину: браузер запрашивает сервер через отдельный HTTP-запрос, потому что путь содержит «http», поэтому сервер возвращает HTML-вывод. поэтому $ i не существует: нет вывода.

Как я могу вызывать файлы в include, используя их путь от root для правильной работы AJAX?

Ответы [ 2 ]

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

Вы должны никогда использовать имена хостов в локальных файловых путях. Вместо этого используйте $_SERVER['DOCUMENT_ROOT'], например:

require_once("{$_SERVER['DOCUMENT_ROOT']}/sms/test.php");

Это добавит что-то вроде /var/www (или любой другой корневой путь) к началу пути к файлу. Также лучше использовать require_once() вместо include_once(); если PHP не может найти файл для включения, он скажет об этом и остановит выполнение, вместо возможного сбоя в автоматическом режиме.

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

попробуй require_once($_SERVER['DOCUMENT_ROOT'] . '/sms/test.php');

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