Делая недавно свой очередной биллинг для провайдера решил использовать запуск некоторых 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/2828


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

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

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

Add your comment now

Please note: JavaScript is required to post comments.