내가 크론 탭을 만들기 위해 관리 한 예를 들어변수를 crontab에 전달하고 PHP에서 읽으시겠습니까?
,
내가
내가 그걸 어떻게 할 수 file.php
안에 읽어이 crontab을에서 변수를 전달하려는* * * * * php /my/directory/file.php
?
감사합니다.
내가 크론 탭을 만들기 위해 관리 한 예를 들어변수를 crontab에 전달하고 PHP에서 읽으시겠습니까?
,
내가
내가 그걸 어떻게 할 수 file.php
안에 읽어이 crontab을에서 변수를 전달하려는* * * * * php /my/directory/file.php
?
감사합니다.
쉘에서 PHP를 실행하는 것은 웹 서버 환경에서 실행하는 것과 완전히 다릅니다. 이전에 명령 줄 프로그래밍을 수행하지 않았다면 몇 가지 놀라운 일이 발생할 수 있습니다.
즉, 정보를 명령에 전달하는 일반적인 방법은 명령 줄에 넣는 것입니다. 당신이 할 경우 스크립트 내에서 다음
php /my/directory/file.php "some value" "some other value"
을 $argv[1]
는 "some value"
로 설정되고 $argv[2]
은 "some other value"
로 설정됩니다. ($argv[0]
은 "/my/directory/file.php"
으로 설정됩니다).
명령 줄에서 PHP 스크립트를 실행하면 $argc
에서 변수 개수에 액세스하고 배열 에서 실제 값에 액세스 할 수 있습니다. 간단한 예.
는 php test.php a b c
사용하여이 실행 test.php
<?php
printf("%d arguments given:\n", $argc);
print_r($argv);
고려 :
4 arguments given:
Array
(
[0] => test.php
[1] => a
[2] => b
[3] => c
)
+1. –
는 좀 더 복잡한 명령 줄 매개 변수에 사용할 수있는 처리하는 $argv
답변을 추가 할 수 있습니다 getopt()
: http://www.php.net/manual/en/function.getopt.php
N 위의 방법 중 하나가 저에게 효과적이었습니다. 내 hoster의 공유 서버에서 cron을 실행합니다. cron 작업은 cPanel과 같은 인터페이스로 생성됩니다. 명령 행은 PHP를 호출하여 스크립트 이름과 몇 개의 인수를 전달합니다. 크론에 대한 명령 줄은 모습입니다
:
php7.2 /server/path/to/my/script/my-script.php "test.tst" "folder=0"
어느 $argv
와 위의 대답은 내 경우 근무의.
CLI 인수에 액세스하기 전에 을 전역으로 선언해야한다는 문제는 아무도 없습니다. 이것은 공식 PHP 매뉴얼에는 언급되어 있지 않습니다.
아마도 서버로 실행되는 스크립트에 대해 전역 로그온을 선언해야합니다. CLI의 로컬 환경에서 실행중인 스크립트 은 전역 선언이 필요하지 않습니다. 테스트 할 때 여기에 게시합니다.
그러나이 nevertherless 내 경우에 대한 작업 구성은 다음과 같습니다global $argv;
echo "argv0: $argv[0]\n\r"; // echoes: argv0: /server/path/to/my/script/my-script.php
echo "argv1: $argv[1]\n\r"; // echoes: argv1: test.tst
echo "argv2: $argv[2]\n\r"; // echoes: argv2: folder=0
내가
$_SERVER['argv']
자동 전역 배열과 같은 결과를 얻었다. 하나는 이런 식으로 사용할 수있다 : 사람을 도움이
$myargv = $_SERVER['argv'];
echo $myargv[1]; // echoes: test.tst
희망을.
나는 그것을 시도했다, 그것은 작동하지 않았다. 나는 그것을 읽을 수 있도록 두 번째 논증을 인용문 사이에 넣어야합니까? 나는 명령에 인용문을 사용하지 않았기 때문에. –
PHP가 명령 줄 용으로 구축 되었습니까? 그것은 다른 SAPI이고 CGI에 사용하는 PHP 바이너리와 다른 PHP 바이너리가 필요합니다. –
나는 shell_exec ("command") 명령을 사용한다. crontab을 만들려면 –