Делая недавно свой очередной биллинг для провайдера решил использовать запуск некоторых php скриптов из консоли.

И вот, собственно здесь интересная ситуация возникла, когда из под www всё ок, а с консоли ругается на инклуды.

Немного погуглив, и поразмышляв пришел к выводу, что запуская из под консоли — нужно либо запускать как php-cgi -f phpfile.php, например из под крона, либо же если php -f phpfile.php — то менять пути инклудных файлов.

А что если я использую один и тот же файл phpfile.php и для веба, и для запуска по крону?
Вот, вот — появляется условие, которое выполняется очень простым способом. Используя встроенную функцию php_sapi_name() мы узнаем как запущен наш phpfile.php:

   if (php_sapi_name()=='cli') {
      echo 'Запущено из командной строки, делаем все что нужно нам из консоли'; 
} esleif {
      (substr(php_sapi_name(),0,3)=='cgi') { echo 'Запущено в режиме CGI';
} elseif {
      (substr(php_sapi_name(),0,6)=='apache') echo 'Запущено в режиме модуля Apache';
} else {
      echo 'Запущено в режиме модуля сервера '.php_sapi_name();
}

Вот и все дела то..

Напоминаю всем копирующим мой контент о существовании закона "Об авторском праве".
В связи с этим, прошу во избежании конфликтов при копировании данного материала, ставить на него ссылку:

http://noted.org.ua/?p=2828


Также, вы можете отблагодарить меня переслав любую сумму на любой кошелек WebMoney, для поддержания данного ресурса. Или просто админу на пиво ;)

Кошельки для получения благодарности:
R386985788805
U234140473141
Z147712360455

На данной странице нет комментариев, возможно они закрыты. Если Вы хотите оставить свой комментарий, перейдите на специально созданный раздел

Add your comment now

You must be logged in to post a comment.