PHP 명령줄

炎欲天舞
풀어 주다: 2023-03-15 12:44:02
원래의
11338명이 탐색했습니다.

pHP 명령 줄 (CLI) 매개 변수의 설명 인터랙티브 쉘 모드에서 PHP의 설명이 내장 된 웹 서버를 찾아서 PHP 구성 파일을 찾으십시오.

클래스/함수/확장 정보 보기

  • 구문 검사

    • 명령줄 스크립트 개발

    • PHP는 일반적으로 웹 서버에서 PHP를 실행하고 브라우저를 사용하여 액세스합니다. 따라서 명령줄 작업 및 관련 매개변수 사용에는 거의 주의를 기울이지 않습니다. 그러나 특히 Unix 계열 운영 체제에서는 PHP를 스크립트 언어로 사용하여 쉘과 유사한 처리 작업을 수행할 수 있습니다.

      php 명령줄(CLI) 매개변수에 대한 자세한 설명
    • PHP의 모든 명령줄 매개변수를 보려면 php -h 명령을 사용하세요. PHP의 기능에 대한 이해를 깊게 하고, 서버 명령줄에서 PHP를 보다 빠르게 사용하거나, 환경에 익숙하지 않아 발생하는 다양한 문제를 디버깅하기 위해 일반적으로 사용되는 대부분의 명령줄 매개변수를 하나씩 설명합니다.

      -a               以交互式shell模式运行
      -c | 指定php.ini文件所在的目录
      -n               指定不使用php.ini文件
      -d foo[=bar]     定义一个INI实体,key为foo,value为'bar'
      -e               为调试和分析生成扩展信息
      -f         解释和执行文件.
      -h               打印帮助
      -i               显示PHP的基本信息
      -l               进行语法检查 (lint)
      -m               显示编译到内核的模块
      -r         运行PHP代码,不需要使用标签 ..?>
      -B   在处理输入之前先执行PHP代码
      -R         对输入的没一行作为PHP代码运行
      -F         Parse and execute  for every input line
      -E     Run PHP  after processing all input lines
      -H               Hide any passed arguments from external tools.
      -S : 运行内建的web服务器.
      -t      指定用于内建web服务器的文档根目录
      -s               输出HTML语法高亮的源码
      -v               输出PHP的版本号
      -w               输出去掉注释和空格的源码
      -z         载入Zend扩展文件 .
       
      args...          传递给要运行的脚本的参数. 当第一个参数以-开始或者是脚本是从标准输入读取的时候,使用--参数
       
      --ini            显示PHP的配置文件名
       
      --rf       显示关于函数  的信息.
      --rc       显示关于类  的信息.
      --re       显示关于扩展  的信息.
      --rz       显示关于Zend扩展  的信息.
      --ri       显示扩展  的配置信息.
      로그인 후 복사
    • PHP 명령의 모든 매개변수와 해당 설명이 위에 나열되어 있습니다. 다음으로 더 일반적으로 사용되는 매개변수의 예를 제공하겠습니다.
    • 대화형 셸 모드에서 PHP 실행

    • Python을 사용해 본 친구들은 Python의 대화형 셸에 익숙합니다. 명령줄에서 python 명령을 직접 입력하면 Python 대화형 셸 프로그램이 시작됩니다. 다음으로 일부 컴퓨팅 작업을 수행할 수 있습니다. 대화형으로 수행됩니다.
    • PHP 명령줄에서도 유사한 기능이 제공됩니다. -a 매개변수를 사용하여 대화형 셸 모드로 들어갑니다.

    • 이 셸에서는 항상 새 PHP 파일을 만들지 않고도 몇 가지 간단한 작업을 수행할 수 있습니다.
  • 자세한 지침은 공식 문서를 참조하세요.

    내장 웹 서버 실행
PHP 5.4.0부터 PHP의 명령줄 모드에서는 내장 웹 서버를 제공합니다. -S를 사용하여 웹 서비스 실행을 시작합니다.

현재 /Users/mylxsw/codes/php/aicode/demo 디렉토리에 있다고 가정합니다. 이 디렉토리에 index.php 파일이 있습니다.

$ ls
index.php
$ cat index.php
<?php echo "Hello, PHPER!";
로그인 후 복사

이 디렉터리에서 다음 명령을 실행하여 내장 웹 서버를 시작하고 기본적으로 현재 디렉터리를 작업 디렉터리로 사용합니다

$ php -S localhost:8000
PHP 5.6.3 Development Server started at Wed Jun 10 15:49:41 2015
Listening on http://localhost:8000
Document root is /Users/mylxsw/codes/php/aicode/demo
Press Ctrl-C to quit.
로그인 후 복사

다른 쉘 창을 열고 http://localhost:8000을 요청합니다. / 보시려면 스크립트 출력으로 가세요

$ curl -is http://localhost:8000/
HTTP/1.1 200 OK
Host: localhost:8000
Connection: close
X-Powered-By: PHP/5.6.3
Content-type: text/html;
 
Hello, PHPER!
로그인 후 복사

웹 서비스가 실행되는 창에서 출력 로그 정보를 보실 수 있습니다

위에서 내장 서버를 시작할 때 -S 매개변수만 지정해 놓았는데요. PHP는 웹 서버로 실행됩니다. 이때 PHP는 현재 디렉터리를 작업 디렉터리로 사용하므로 현재 디렉터리로 돌아가서 요청한 파일을 찾을 수도 있습니다. -t 매개변수를 사용하여 다른 디렉터리를 작업 디렉터리로 지정할 수도 있습니다. (문서 루트 디렉터리).

자세한 내용은 공식문서를 참고해주세요.

PHP 구성 파일 찾기

때때로 서버에 소프트웨어를 설치하는 혼란으로 인해 여러 버전의 PHP 환경을 설치했을 수 있습니다. 현재로서는 PHP 프로그램이 어떤 구성 파일을 사용하는지 확인하기가 더 어렵습니다. . 중요합니다. PHP 명령줄 매개변수에는 –ini 매개변수가 제공됩니다. 이 매개변수를 사용하면 현재 PHP 구성 파일 정보를 나열할 수 있습니다.

$ php --ini
Configuration File (php.ini) Path: /usr/local/etc/php/5.6
Loaded Configuration File:         /usr/local/etc/php/5.6/php.ini
Scan for additional .ini files in: /usr/local/etc/php/5.6/conf.d
Additional .ini files parsed:      (none)
 
$ /usr/local/php/bin/php --ini
Configuration File (php.ini) Path: /usr/local/php/etc/
Loaded Configuration File:         /usr/local/php/etc/php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)
로그인 후 복사

위 서버에는 두 가지 버전의 PHP가 설치되어 있습니다. 위에서 볼 수 있듯이 php –ini 명령을 사용하면 현재 PHP 명령이 사용할 구성 파일을 쉽게 찾을 수 있습니다.

클래스/함수/확장 정보 보기

일반적으로 웹 서버의 php –info 명령을 사용하거나 php 프로그램의 phpinfo() 함수를 사용하여 php 정보를 표시한 후 관련 클래스, 확장 또는 함수를 찾을 수 있습니다. 정보, 정말 귀찮습니다.

$ php --info | grep redis
redis
Registered save handlers => files user redis
This program is free software; you can redistribute it and/or modify
로그인 후 복사
다음 매개변수를 사용하면 이 정보를 더 편리하게 볼 수 있습니다

--rf       显示关于函数  的信息.
--rc       显示关于类  的信息.
--re       显示关于扩展  的信息.
--rz       显示关于Zend扩展  的信息.
--ri       显示扩展  的配置信息.
로그인 후 복사
예를 들어 확장 redis의 구성 정보를 보고 싶습니다

$ php --ri redis
 
redis
 
Redis Support => enabled
Redis Version => 2.2.7
로그인 후 복사

redis 클래스의 정보 보기

$ php --rc redis
Class [  class Redis ] {
 
  - Constants [19] {
    Constant [ integer REDIS_NOT_FOUND ] { 0 }
    ...
  - Methods [201] {
    ...
    Method [  public method echo ] {
    }
    ...
로그인 후 복사

보기 printf

$ php --rf printf
Function [  function printf ] {
 
  - Parameters [2] {
    Parameter #0 [  $format ]
    Parameter #1 [  ...$args ]
  }
}
로그인 후 복사

함수 정보 printf

$ php -l index.php
No syntax errors detected in index.php
로그인 후 복사

Syntax Check

때로는 일부 편집기나 IDE에서 PHP 파일에 구문 오류가 있는지 확인하는 등 PHP 스크립트를 실행하지 않고 PHP 스크립트에 구문 오류가 있는지만 확인하면 되는 경우가 있습니다.

PHP 파일에서만 구문 검사를 수행하려면 -l(--syntax-check)을 사용하세요.

$ php -l index.php
PHP Parse error:  syntax error, unexpected &#39;echo&#39; (T_ECHO) in index.php on line 3
 
Parse error: syntax error, unexpected &#39;echo&#39; (T_ECHO) in index.php on line 3
Errors parsing index.php
로그인 후 복사

지금 index.php에 구문 오류가 있다고 가정해 보세요

<?php echo &#39;命令行参数个数: &#39; . $argc . "n";
echo "命令行参数:n";
foreach ($argv as $index => $arg) {
    echo "    {$index} : {$arg}n";
}
로그인 후 복사
로그인 후 복사

명령줄 스크립트 개발

PHP를 사용하여 명령줄 스크립트를 개발하는 것은 웹 프로그램 개발과 확실히 다릅니다. URL의 매개변수를 변경하여 PHP 환경에 다른 입력을 제공할 수 있지만 명령줄 스크립트 프로그램에서 외부 입력을 얻는 방법은 무엇입니까?

在使用C语言开发程序时,我们通常会在main函数中提供两个可选的参数int main(int argc, char *argv[]),这两个参数就是从命令行提供的输入参数。在PHP中,提供了两个全局变量$argc和$argv用于获取命令行输入。

  • $argc 包含了 $argv数组包含元素的数目

  • $argv 是一个数组,包含了提供的参数,第一个参数总是脚本文件名称

假设我们有一个名为console.php的命令行脚本文件

<?php echo &#39;命令行参数个数: &#39; . $argc . "n";
echo "命令行参数:n";
foreach ($argv as $index => $arg) {
    echo "    {$index} : {$arg}n";
}
로그인 후 복사
로그인 후 복사

在命令行下执行该脚本

$ php console.php hello world
命令行参数个数: 3
命令行参数:
    0 : console.php
    1 : hello
    2 : world
로그인 후 복사

可以看到,第0个参数是我们执行的脚本名称。需要注意的是,如果提供的第一个参数是以-开头的话,需要在前面增加–,以告诉php这后面的参数是提供给我们的脚本的,而不是php执行文件的(php -r ‘var_dump($argv);’ — -h)。

另外,在脚本中,我们可以通过php_sapi_name()函数判断是否是在命令行下运行的

$ php -r &#39;echo php_sapi_name(), PHP_EOL;&#39;
cli
로그인 후 복사

参考文献

  • Using PHP from the command line

위 내용은 PHP 명령줄의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿