Bir PHP dosyası cron / komut satırı üzerinden yüklü olmadığını belirlemek için nasıl

4 Cevap php

Ben PHP dosyası kodu içinde cron veya komut satırı üzerinden yüklenen olup olmadığını belirlemek gerekir. Bunu nasıl yapabilirim?

4 Cevap

Eğer cron veya komut üzerinde kontrol varsa, bir komut satırı argümanı geçen ve onu okuma kabul var $_SERVER['argv'][0]?

* * * * *   /usr/bin/php /path/to/script --cron

Senaryoda:

<?php
if(isset($_SERVER['argv'][0]) and $_SERVER['argv'][0] == '--cron')
   $I_AM_CRON = true;
else
   $I_AM_CRON = false;

Script bana bilinmektedir çalıştırmak nerede kontrol etmek için en güvenilir ve en kapsamlı yoludur

php_sapi_name()

Bu ne burada listelenen diğer listelenen yöntemlerden herhangi Ne Ancak, size "normal" CLI modu arasında bir ayrım ve bir cron çağrı verecektir. gahooa komut satırı argümanı fikir muhtemelen en iyi ve en güvenilir bir çözümdür.

Bu basit bir yoludur. HTTP çağrılırsa $_SERVER dizinin bazı unsurları sadece ayarlanır. Böylece yapabilirsiniz:

if(!isset($_SERVER['REQUEST_METHOD'])){
 // from cron or command line
}else{
 // from HTTP
}

Diğer aşağıdakileri içermektedir: $_SERVER['HTTP_HOST']

Sen CLI tercüman kullanılması durumunda PHP_SAPI sürekli kontrol etmek için kontrol edebilirsiniz:

$is_cli= PHP_SAPI == 'cli';