이 글은 주로 PHP에서의 명령줄 실행을 소개하는데, 이는 특정 참조 값을 가지고 있습니다. 이제는 모든 사람과 공유합니다. 도움이 필요한 친구들이 참고할 수 있습니다
Usage: php [options] [-f] <file> [args...] php [options] -r <code> [args...] php [options] [-- args...] -s Display colour syntax highlighted source. -w Display source with stripped comments and whitespace. -f <file> Parse <file>. -v Version number -c <path>|<file> Look for php.ini file in this directory -a Run interactively -d foo[=bar] Define INI entry foo with value 'bar' -e Generate extended information for debugger/profiler -z <file> Load Zend extension <file>. -l Syntax check only (lint) -m Show compiled in modules -i PHP information -r <code> Run PHP <code> without using script tags <?..?> -h This help args... Arguments passed to script. Use -- args when first argument starts with - or script is read from stdin
CLI SAPI 모듈에는 실행하려는 PHP 코드를 가져오는 다음 세 가지 방법이 있습니다.
Windows 환경에서는 큰따옴표를 사용하고 Linux에서는 환경에서는 큰따옴표를 사용하여 완료하세요.
지정된 파일을 PHP 실행해 보세요.
php my_script.php php -f "my_script.php" 로그인 후 복사 |
위의 두 방법 모두(-f 매개변수 유무에 관계없이) 주어진 my_script.php 파일을 실행할 수 있습니다. 실행할 파일을 선택할 수 있습니다. 지정하는 PHP 스크립트는 .php 확장자를 가질 필요가 없습니다.
명령줄에서 직접 PHP 코드를 실행하세요.
php -r "print_r(get_defined_constants());" 로그인 후 복사 |
이 방법을 사용할 때 쉘 변수 대체와 따옴표 사용에 주의하시기 바랍니다.
참고: 위의 예를 주의 깊게 읽어보세요. 코드를 실행할 때 시작 및 끝 마커가 없습니다! -r 매개변수를 사용하면 이러한 마커가 필요하지 않으며 구문 오류가 발생합니다.
표준 입력(stdin)을 통해 실행해야 하는 PHP 코드를 제공합니다.
위 사용법은 매우 강력한 기능을 제공하므로 PHP 코드를 동적으로 생성하고 다음 예와 같이 명령줄을 통해 이러한 코드를 실행할 수 있습니다.
$ some_application | some_filter | php | sort -u >final_output.txt 로그인 후 복사 |
以上三种运行代码的方法不能同时使用。
和所有的外壳应用程序一样,PHP 的二进制文件(php.exe 文件)及其运行的 PHP 脚本能够接受一系列的参数。PHP 没有限制传送给脚本程序的参数的个数(外壳程序对命令行的字符数有限制,但您通常都不会超过该限制)。传递给您脚本的参数可在全局变量 $argv 中获取。该数组中下标为零的成员为脚本的名称(当 PHP 代码来自标准输入获直接用 -r 参数以命令行方式运行时,该名称为“-”)。另外,全局变量 $argc 存有 $argv 数组中成员变量的个数(而非传送给脚本程序的参数的个数)。
只要您传送给您脚本的参数不是以 - 符号开头,您就无需过多的注意什么。向您的脚本传送以 - 开头的参数会导致错误,因为 PHP 会认为应该由它自身来处理这些参数。您可以用参数列表分隔符 -- 来解决这个问题。在 PHP 解析完参数后,该符号后所有的参数将会被原样传送给您的脚本程序。
# 以下命令将不会运行 PHP 代码,而只显示 PHP 命令行模式的使用说明: $ php -r 'var_dump($argv);' -h Usage: php [options] [-f] <file> [args...] [...] # 以下命令将会把“-h”参数传送给脚本程序,PHP 不会显示命令行模式的使用说明: $ php -r "var_dump($argv);" -- -h array(2) { [0]=> string(1) "-" [1]=> string(2) "-h" } 로그인 후 복사 |
除此之外,我们还有另一个方法将 PHP 用于外壳脚本。您可以在写一个脚本,并在第一行以 #!/usr/bin/php 开头,在其后加上以 PHP 开始和结尾标记符包含的正常的 PHP 代码,然后为该文件设置正确的运行属性。该方法可以使得该文件能够像外壳脚本或 PERL 脚本一样被直接执行。
#!/usr/bin/php <?php var_dump ($argv); ?> 로그인 후 복사 <span style="color:rgb(0,0,0);"><span style="color:rgb(0,0,187);"></span></span> |
假设改文件名为 test 并被放置在当前目录下,我们可以做如下操作:
$ chmod 755 test $ ./test -h -- foo array(4) { [0]=> string(6) "./test" [1]=> string(2) "-h" [2]=> string(2) "--" [3]=> string(3) "foo" } 로그인 후 복사 보시다시피 -로 시작하는 매개변수를 스크립트에 전달하면 스크립트가 계속 정상적으로 실행됩니다. -------------------------------------------------- --- ---------------------명령 옵션------------ ------ ----------------------- 표 23-3. 명령줄 옵션
위 스크립트에서는 첫 번째 특수 코드 줄을 사용하여 파일이 PHP로 실행되어야 함을 나타냅니다. 여기서는 CLI 버전을 사용하고 있으므로 HTTP 헤더가 출력되지 않습니다. PHP에서 명령줄 애플리케이션을 작성할 때 $argc 및 $argv라는 두 가지 매개변수를 사용할 수 있습니다. 이전 값은 매개변수 개수보다 1 큰 정수입니다(실행 중인 스크립트의 이름도 매개변수로 간주됩니다). 두 번째에는 매개변수 배열이 포함되어 있으며 첫 번째 요소는 스크립트 이름이고 아래 첨자는 숫자 0($argv[0])입니다. 위 프로그램에서는 매개변수의 개수가 1보다 큰지, 1보다 작은지 확인했습니다. 인스턴트 매개변수는 --help, -help, -h 또는 -?입니다. 우리는 여전히 도움말 정보를 인쇄하고 동시에 스크립트 이름을 동적으로 출력합니다. 다른 매개변수가 수신되면 해당 매개변수도 표시합니다. 위 스크립트를 Unix에서 실행하려면 실행 가능한 스크립트로 만들고 script.php echothis 또는 script.php -h를 실행하면 됩니다. Windows에서는 이에 대한 배치 파일을 작성할 수 있습니다:
위 내용은 PHP에서 명령줄 실행의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!
이전 기사:Redis와 PHP를 결합한 플래시세일 상품에 대한 자세한 설명
다음 기사:PHP WeChat은 WeChat 공개 계정 QR 코드를 생성하고 이를 스캔하여 매개변수가 있는 공개 계정에 들어갑니다.
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
최신 이슈
CommandText 속성 초기화 문제
C# 콘솔 응용 프로그램을 사용하여 데이터를 2개(나중에 3개) 테이블로 동시에 구체화하려고 합니다. "Users" 테이블에 이름, 성, 사용자...
에서 2024-04-04 22:43:24
0
1
385
곱하기(*) 명령이 계산되지 않습니다.
내 별표가 작동하지 않습니다. calc() 함수를 수행하고 곱셈 표기법(즉, 별표)을 수행할 때 함수가 작동하지 않습니다. 저는 프로그래밍을 배우고 있고 여러분의...
에서 2024-04-04 21:18:17
0
1
315
관련 주제
더>
|