запуск сценария php в windows через bat-файл возвращает ошибку require_once ($ _SERVER ['Document_Root']); - PullRequest
1 голос
/ 05 июня 2011

В системе Windows XP у меня есть test.bat

C:\Path\to\php.exe -f "C:\Path\to\test.php"

У меня также есть test.php

require_once ($_SERVER ['DOCUMENT_ROOT'] . '/Inc/Class/Connect_DB.php');

... больше кода.

Когда я выполняю test.bat в "режиме CMD", он возвращает фатальную ошибку, говоря, что не может найти файл require_once.

То же самоефайл отлично работает в браузере.Кажется, он не может распознать переменную $_SERVER в файле bat.(Я планирую запустить файл test.bat через schtasks.exe позже)

Почему он не может прочитать $_SERVER переменную здесь?

Ответы [ 2 ]

2 голосов
/ 05 июня 2011

Сбросьте $ _SERVER и проверьте, установлен ли корень документа. В моей установке $ _SERVER доступен из cli, но ключ DOCUMENT_ROOT установлен в пустую строку. то есть -> "".

Вам лучше получить путь, используя что-то в строках:

<?php echo dirname(__FILE__);?>
  //you can put this in variable, 
   $base_dir = dirname(__FILE__);
   //append another path ..
   $lib_dir = $base_dir . "/lib/";
   // Notice require does not need parentheses! ;)
   require_once $lib_dir . "db_connect.php";

Есть много способов сделать это, но это должно дать вам представление.

Удачного кодирования!

0 голосов
/ 05 июня 2011

documentroot пуст при вызове из CLI

USE "__DIR__": http://php.net/manual/en/language.constants.predefined.php

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