찾다

PHP 명령줄

May 17, 2018 am 09:09 AM
php명령줄

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
세션을 저장하기 위해 데이터베이스를 사용하면 어떤 장점이 있습니까?세션을 저장하기 위해 데이터베이스를 사용하면 어떤 장점이 있습니까?Apr 24, 2025 am 12:16 AM

데이터베이스 스토리지 세션 사용의 주요 장점에는 지속성, 확장 성 및 보안이 포함됩니다. 1. 지속성 : 서버가 다시 시작 되더라도 세션 데이터는 변경되지 않아도됩니다. 2. 확장 성 : 분산 시스템에 적용하여 세션 데이터가 여러 서버간에 동기화되도록합니다. 3. 보안 : 데이터베이스는 민감한 정보를 보호하기 위해 암호화 된 스토리지를 제공합니다.

PHP에서 사용자 정의 세션 처리를 어떻게 구현합니까?PHP에서 사용자 정의 세션 처리를 어떻게 구현합니까?Apr 24, 2025 am 12:16 AM

SessionHandlerInterface 인터페이스를 구현하여 PHP에서 사용자 정의 세션 처리 구현을 수행 할 수 있습니다. 특정 단계에는 다음이 포함됩니다. 1) CustomsessionHandler와 같은 SessionHandlerInterface를 구현하는 클래스 만들기; 2) 인터페이스의 방법 (예 : Open, Close, Read, Write, Despare, GC)의 수명주기 및 세션 데이터의 저장 방법을 정의하기 위해 방법을 다시 작성합니다. 3) PHP 스크립트에 사용자 정의 세션 프로세서를 등록하고 세션을 시작하십시오. 이를 통해 MySQL 및 Redis와 같은 미디어에 데이터를 저장하여 성능, 보안 및 확장 성을 향상시킬 수 있습니다.

세션 ID 란 무엇입니까?세션 ID 란 무엇입니까?Apr 24, 2025 am 12:13 AM

SessionId는 웹 애플리케이션에 사용되는 메커니즘으로 사용자 세션 상태를 추적합니다. 1. 사용자와 서버 간의 여러 상호 작용 중에 사용자의 신원 정보를 유지하는 데 사용되는 무작위로 생성 된 문자열입니다. 2. 서버는 쿠키 또는 URL 매개 변수를 통해 클라이언트로 생성하여 보낸다. 3. 생성은 일반적으로 임의의 알고리즘을 사용하여 독창성과 예측 불가능 성을 보장합니다. 4. 실제 개발에서 Redis와 같은 메모리 내 데이터베이스를 사용하여 세션 데이터를 저장하여 성능 및 보안을 향상시킬 수 있습니다.

무국적 환경 (예 : API)에서 세션을 어떻게 처리합니까?무국적 환경 (예 : API)에서 세션을 어떻게 처리합니까?Apr 24, 2025 am 12:12 AM

JWT 또는 쿠키를 사용하여 API와 같은 무국적 환경에서 세션을 관리 할 수 ​​있습니다. 1. JWT는 무국적자 및 확장 성에 적합하지만 빅 데이터와 관련하여 크기가 크다. 2. 쿠키는보다 전통적이고 구현하기 쉽지만 보안을 보장하기 위해주의해서 구성해야합니다.

세션과 관련된 크로스 사이트 스크립팅 (XSS) 공격으로부터 어떻게 보호 할 수 있습니까?세션과 관련된 크로스 사이트 스크립팅 (XSS) 공격으로부터 어떻게 보호 할 수 있습니까?Apr 23, 2025 am 12:16 AM

세션 관련 XSS 공격으로부터 응용 프로그램을 보호하려면 다음 조치가 필요합니다. 1. 세션 쿠키를 보호하기 위해 Httponly 및 Secure 플래그를 설정하십시오. 2. 모든 사용자 입력에 대한 내보내기 코드. 3. 스크립트 소스를 제한하기 위해 컨텐츠 보안 정책 (CSP)을 구현하십시오. 이러한 정책을 통해 세션 관련 XSS 공격을 효과적으로 보호 할 수 있으며 사용자 데이터가 보장 될 수 있습니다.

PHP 세션 성능을 어떻게 최적화 할 수 있습니까?PHP 세션 성능을 어떻게 최적화 할 수 있습니까?Apr 23, 2025 am 12:13 AM

PHP 세션 성능을 최적화하는 방법 : 1. 지연 세션 시작, 2. 데이터베이스를 사용하여 세션을 저장, 3. 세션 데이터 압축, 4. 세션 수명주기 관리 및 5. 세션 공유 구현. 이러한 전략은 높은 동시성 환경에서 응용의 효율성을 크게 향상시킬 수 있습니다.

SESSION.GC_MAXLIFETIME 구성 설정은 무엇입니까?SESSION.GC_MAXLIFETIME 구성 설정은 무엇입니까?Apr 23, 2025 am 12:10 AM

THESESSION.GC_MAXLIFETIMESETTINGINSTTINGTINGSTINGTERMINESTERMINESTERSTINGSESSIONDATA, SETINSECONDS.1) IT'SCONFIGUDEDINPHP.INIORVIAINI_SET ()

PHP에서 세션 이름을 어떻게 구성합니까?PHP에서 세션 이름을 어떻게 구성합니까?Apr 23, 2025 am 12:08 AM

PHP에서는 Session_Name () 함수를 사용하여 세션 이름을 구성 할 수 있습니다. 특정 단계는 다음과 같습니다. 1. Session_Name () 함수를 사용하여 Session_Name ( "my_session")과 같은 세션 이름을 설정하십시오. 2. 세션 이름을 설정 한 후 세션을 시작하여 세션을 시작하십시오. 세션 이름을 구성하면 여러 응용 프로그램 간의 세션 데이터 충돌을 피하고 보안을 향상시킬 수 있지만 세션 이름의 독창성, 보안, 길이 및 설정 타이밍에주의를 기울일 수 있습니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)