백엔드 개발 PHP 튜토리얼 在 PHP 中使用命令行工具_PHP教程

在 PHP 中使用命令行工具_PHP教程

Jul 13, 2016 pm 05:38 PM
php web 사용 만들다 발견하다 명령줄 존재하다 도구 특성 ~의

如果您使用过 PHP,您就会发现它是创建特性丰富的 Web 页面的出色工具。作为一大脚本语言,PHP

  ·容易学习。

  ·有许多强大的框架(比如 CakePHP 和 CodeIgniter),让您能够像 Rails 程序员一样高效。

  ·能够与 MySQL、PostgreSQL、Microsoft SQL Server,甚至 Oracle 通信。

  ·能够轻松地与 JavaScript 框架集成,比如 script.aculo.us 和 jQuery。

  但有时候,您想做更多的事情,或必须做更多的事情。我的意思是您必须直接与 PHP 运行的服务器的文件系统打交道。您最终需要处理文件系统上的文件,了解运行的进程或执行其他任务。

  首先,您对在 PHP 使用 file() 命令打开文件很满意。但是在某种程度上,完成某些事情的唯一途径是在服务器上运行 shell 命令并获得特定的输出。例如,您可能想知道特定目录包含多少个文件。或者您想知道向某组日志文件写了多少行内容。或者您想操作这些文件,将它们复制到另一个目录,或使用 rsync 将它们发送到另一个位置。

  在 “PHP 命令行?是的,您可以!” 这篇文章中,Roger McCoy 演示了如何从命令行直接使用 PHP ——不需任何 Web 浏览器。在这篇文章中,我从另一个角度看待相同的主题,向您展示如何紧密地与底层 shell 命令集成,以及将返回值包含到您的界面和进程中。

  仅当您运行在 Linux、Berkeley Software Distribution (BSD) 或一些其他 UNIX 版本上时,这些操作才有效。我假设您运行在 Linux-Apache-MySQL-PHP (LAMP) 堆栈上。如果您运行其他版本的 UNIX,具体细节可能不同,因为在每个版本中命令行的可用性都不同。我知道很多人还在 Mac OS X(运行某个版本的 BSD)从事开发,因此我尽量保持示例命令的通用性,确保移植方便。

  命令行概述

  PHP Command Line Interface (CLI) Server Application Programming Interface (SAPI) 在 PHP V4.2.0 开始发布,用于试验目的。到 V4.3.0 时,已经受到完整支持并且默认启用。PHP CLI SAPI 允许您开发 PHP 支持的 shell 脚本,甚至是基于桌面的脚本。事实上,可以用 PHP 创建可直接从命令行运行的工具。采用这种方式,PHP 开发人员可以像 Perl、AWK、Ruby 或 shell 程序员一样高效。

  本文探究构建到 PHP 中的工具,让您了解 PHP 运行的底层 shell 环境和文件系统。PHP 为执行外部命令提供大量函数,其中包括 shell_exec()、exec()、passthru() 和 system()。这些命令是相似的,但为您运行的外部程序提供不同的界面。所有这些命令都衍生一个子进程,用于运行您指定的命令或脚本,并且每个子进程会在命令输出写到标准输出 (stdout) 时捕捉它们。

  shell_exec()

  shell_exec() 命令行实际上仅是反撇号 (`) 操作符的变体。如果您编写过 shell 或 Perl 脚本,您就知道可以在反撇号操作符内部捕捉其他命令的输出。例如,清单 1 显示了如何使用反撇号在当前目录中获取每个文本(.txt)的单词计数。

  清单 1. 使用反撇号计算单词数量

  #! /bin/sh

  number_of_words=`wc -w *.txt`

  echo $number_of_words

  #result would be something like:

  #165readme.txt 388results.txt 588summary.txt

  #andso on....

  在您的 PHP 脚本中,您可以在 shell_exec() 中运行这个简单的命令,如清单 2 所示,并获取想要的结果。这里假设在同一个目录下有一些文本文件。

  清单 2. 在 shell_exec() 中运行相同的命令

  

$results =shell_exec(wc -w *.txt);

echo $results;

?>  $results =shell_exec(wc -w *.txt);

  echo $results;

  >

  在图 1 中可以看到,获得的结果与从 shell 脚本得到的一样。这是因为 shell_exec() 允许您通过 shell 运行外部程序,然后以字符串的形式返回结果。

  图 1. 通过 shell_exec() 运行 shell 命令的结果  

\

注意,仅使用后撇号操作符也会得到相同的结果,如下所示。

  清单 3. 仅使用后撇号操作符

  

$results =`wc -w *.txt`;

echo $results;

?>  $results =`wc -w *.txt`;

  echo $results;

  >

  清单 4 给出了一种更加简单的方法。

  清单 4. 更加简单的方法

  

echo `wc -w *.txt`;

?>  echo `wc -w *.txt`;

  >

  通过 UNIX 命令行和 shell 脚本能够完成很多东西,知道这点很重要。例如,您可以使用竖线将命令连接起来。您甚至可以使用操作符在其中创建 shell 脚本,并且仅调用 shell 脚本(根据需要使用或不使用参数)。

  例如,如果您仅希望计算该目录下的前 5 个文本文件的单词数,那么可以使用竖线 (|) 将 wc 和 head 命令连接起来。另外,您还可以将输出结果放到 pre 标记内部,让它能够更美观地呈现在 Web 浏览器中,如下所示。

  清单 5. 更加复杂的 shell 命令

  

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/486464.htmlTechArticle如果您使用过 PHP ,您就会发现它是创建特性丰富的 Web 页面的出色工具。作为一大脚本语言, PHP : 容易学习。 有许多强大的框架(比如...
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 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 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

<gum> : Bubble Gum Simulator Infinity- 로얄 키를 얻고 사용하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
Nordhold : Fusion System, 설명
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora : 마녀 트리의 속삭임 - Grappling Hook 잠금 해제 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
<exp exp> 모호한 : 원정 33- 완벽한 크로마 촉매를 얻는 방법
2 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

VSCODE로 JavaScript 코드를 작성하는 모범 사례 VSCODE로 JavaScript 코드를 작성하는 모범 사례 May 15, 2025 pm 09:45 PM

VSCODE에서 JavaScript 코드를 작성하기위한 모범 사례에는 다음이 포함됩니다. 1) Pretier, Eslint 및 JavaScript 설치 (ES6) CodesNippets 확장, 2) DEANKE.JSON 파일 디버깅 및 3) 최신 JavaScript 기능 및 최적화 루프를 사용하여 성능을 향상시킵니다. 이러한 설정 및 트릭을 사용하면 VSCODE에서 JavaScript 코드를보다 효율적으로 개발할 수 있습니다.

Vaneck은 기관 투자자를위한 최초의 RWA 토큰 화 펀드를 시작했습니다. Vaneck은 기관 투자자를위한 최초의 RWA 토큰 화 펀드를 시작했습니다. May 15, 2025 am 11:51 AM

Vbill Token Fund는 5 월 13 일에 시작하여 기관 투자자에게 미국 회계 법안을 토큰화할 수있는 기회를 제공했습니다. Vaneck의 새로운 Tagged Fund는 기관 투자자가 미국 재무부 법안에 투자 할 수 있도록합니다. Vbill Token Fund는 5 월 13 일 펀드의 전체 운영을 지원하는 토큰 화 된 플랫폼 인 Securities와의 협력으로 시작되었습니다. 이 펀드는 Ethereum, Sorana, Avalanche 및 BNB 체인의 4 가지 주요 블록 체인에 가입됩니다. 이 블록 체인 중 3 개 (Avalanche, Solana 및 BNB 체인)에서 최소 구독은 $ 100,000입니다. 이더 리움에서 최소 투자는 미화 백만 달러입니다. 이 기금은 실제 생활을 확장하려는 Vaneck의 노력입니다

PHP에서 문자열을 해시하는 방법은 무엇입니까? PHP에서 문자열을 해시하는 방법은 무엇입니까? May 15, 2025 pm 08:54 PM

PHP의 효율적인 해싱 스트링은 다음 방법을 사용할 수 있습니다. 1. 빠른 해싱에 MD5 기능을 사용하지만 비밀번호 저장에는 적합하지 않습니다. 2. SHA256 기능을 사용하여 보안을 향상시킵니다. 3. Password_hash 함수를 사용하여 비밀번호를 처리하여 최고 보안과 편의성을 제공하십시오.

vscode의 git history 및 변경 사항을보십시오 vscode의 git history 및 변경 사항을보십시오 May 15, 2025 pm 09:24 PM

vscode의 git 기록 및 변경 사항을 보는 방법에는 다음이 포함됩니다. 1. VSCODE 열기 및 프로젝트가 GIT 저장소를 초기화했는지 확인하십시오. 2. 왼쪽 사이드 바에서 "소스 코드 관리"아이콘을 클릭하십시오. 3. "... (더 많은 옵션)"를 선택하고 "git : showgitoutput"을 클릭하십시오. 4. 히스토리 및 파일 변경 사항을보십시오. 5. 파일을 마우스 오른쪽 버튼으로 클릭하고 "git : showfilehistory"를 선택하여 파일 변경 기록을보십시오. 이러한 단계를 통해 GIT 기록과 VSCODE의 변화를 효율적으로 볼 수있어 개발 효율성을 향상시킬 수 있습니다.

xploradex와 $ xpl 토큰은 무엇입니까? 기사 소개 xploradex와 $ xpl 토큰은 무엇입니까? 기사 소개 May 15, 2025 am 11:45 AM

빠르게 발전하는 분산 금융 (Defi) 세계에서 혁신은 결코 멈추지 않습니다. 최신 물결은 속도 나 안전에 관한 것이 아니라 지혜에 관한 것입니다. Xploradex가 무대에 올 때입니다. XRP 레코드를 기반으로 한 Xploradex는 모든 수준의 거래에 인공 지능 (AI)을 도입하여 분산 교환을위한 새로운 벤치 마크를 설정하고 있습니다. 그러나 xploradex는 정확히 무엇이며, 다른 플랫폼과 어떻게 다른가, 생태계에서 $ xpl 토큰이 어떤 역할을 하는가? 이해하기 쉬운 방식으로 단계별로 구문 분석하겠습니다.

XRP 선물이 다가오고 CME Group은 토큰의 제도적 채택을 확대합니다. XRP 선물이 다가오고 CME Group은 토큰의 제도적 채택을 확대합니다. May 15, 2025 am 11:57 AM

5 월 19 일은 XRP 시장에서 중요한 날이 될 것입니다.이 날 공식 기자 회견이 열릴 예정입니다. 이러한 움직임은 XRP 채택을위한 주요 금융 플랫폼의 열정이 커지고 있음을 반영합니다. CME Group은 공식적으로 5 월 19 일 XRP 시장 개발에있어 기관 투자자에게 중요한 이정표를 표시 할 예정입니다. 릴리스 날짜는 FutureSexChange가 공식적으로 발표하여 XRP 시장의 주요 진전을 강조했습니다. 이 조치는 주요 금융 플랫폼에 의한 XRP 채택의 맥락에서 수행됩니다. CME는 몇 주 전에 XRP 선물을 증가시킬 것이라고 확인했다. 이 확인은 CME의 최근 Solanafutures 출시 이후에 비트 코인 및 이더 리움으로 제품을 확장하는 교환을 보여줍니다.

미래에 가장 적합한 암호 화폐를 확인하십시오. 상위 3 개의 드래프트 픽은 막대한 이익 잠재력을 잠금 해제 할 것입니다! 미래에 가장 적합한 암호 화폐를 확인하십시오. 상위 3 개의 드래프트 픽은 막대한 이익 잠재력을 잠금 해제 할 것입니다! May 15, 2025 pm 12:30 PM

오늘날의 붐비는 암호 시장에서, 과대 광고, 추측 및 예측할 수없는 변동성이 지배적입니다. 광대하고 종종 광고되는 암호 화폐 시장에서 지속적인 성공은 실제 유틸리티, 혁신 및 궁극적 인 견인으로 이어집니다. 투자자와 거래자가 지속적인 힘을 가진 프로젝트를 추구함에 따라, 강력한 사용 사례, 기본 안정성 및 미래 기술이있는 사람들은 특히 시장 변동성에 직면하고 있습니다. 2025 년에 눈에 띄는 3 개의 토큰은 Web3ai (Wai), Hedera (HBAR) 및 Polkadot (DOT)입니다. Web3AI의 AI 중심 거래 플랫폼, Hedera의 엔터프라이즈 사용 확장 성 및 Polkadot

PHP에서 __clone 방법을 사용하는 방법은 무엇입니까? PHP에서 __clone 방법을 사용하는 방법은 무엇입니까? May 15, 2025 pm 08:48 PM

PHP의 __clone 방법은 객체 클로닝시 사용자 정의 작업을 수행하는 데 사용됩니다. 클론 키워드를 사용하여 객체를 클로닝 할 때 객체에 __ 클론 메소드가있는 경우 방법이 자동으로 호출되어 클로닝 프로세스 중에 클로닝 된 객체의 독립성을 보장하기 위해 참조 유형 속성을 재설정하는 것과 같은 클로닝 프로세스 중에 맞춤형 처리가 가능합니다.

See all articles