PHP вложенный включает в пакетный процесс PHP - PullRequest
0 голосов
/ 15 мая 2018

Моя проблема в пакетном задании php, которое содержит вложенные включения.Если я запускаю работу с ярлыка на рабочем столе, все в порядке.Если задание запускается планировщиком заданий (как это должно выполняться в производственной среде), вложенный включает отказ от выполнения.Мой веб-сервер IIS на Windows Server.Структура задания показана ниже.

file1.php - это небольшой «основной» модуль, file3.php выполняет реальную работу.Файл dir, содержащий file1.php, содержит dira1 и dirb1.Включения в file1.php выполняются как обычно.Включения в file3.php выполняются, если задание выполняется через мой ярлык.Если задание выполняется через планировщик заданий, это не так.Если я поместил полное задание в file1.php (то есть с inlclude, но не вложенным), задание будет успешно выполнено.

file1.php:

include 'dira1/file2.php';
include 'dira1/dira2/dira3/file3.php';

file3.php:

include 'dirb1/dirb2/file4.php';
include 'dira1/dira2/dira3/file5.php';

Спасибо за вашу помощь.JackNWK

1 Ответ

0 голосов
/ 15 мая 2018

PHP включает константу __DIR__ для этой цели. __DIR__ относится к каталогу, в котором находится текущий скрипт.

Я всегда рекомендую включать файлы с использованием константы __DIR__ с относительным путем из текущего скрипта.

include __DIR__ . '/dirb1/file2.php';
...