Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-CLI-Modus lernen – PHP-Befehlszeilenmodus

PHP-CLI-Modus lernen – PHP-Befehlszeilenmodus

不言
不言Original
2018-04-08 15:30:2412249Durchsuche

Ich wusste vorher, dass der PHP-CLI-Modus eine Shell-ähnliche Ausführung von PHP-Programmen im Befehlsstil ist, aber ich dachte immer, dass dies ein Rückwärtsgang sei und bedeutungslos sein sollte, da ich noch nie jemanden getroffen habe, der diesen CLI-Modus verwendet zum Programmieren. Aber heute bin ich auf eine Anwendung gestoßen, die den CLI-Modus verwendet

Einführung in den php_cli-Modus

php-cli ist die Abkürzung für PHP Command Line Interface, wie der Name schon sagt ist PHP in Die auf der Befehlszeile ausgeführte Schnittstelle unterscheidet sich von der PHP-Umgebung (php-cgi, isapi usw.), die auf dem Webserver ausgeführt wird. Mit anderen Worten, PHP kann nicht nur Front-End-Webseiten schreiben, sondern auch zum Schreiben von Hintergrundprogrammen verwendet werden. PHP CLI Shell Scripting nutzt alle Vorteile von PHP und ermöglicht die Erstellung von entweder serverseitigen Skripten oder System- oder sogar Anwendungen mit GUI! ——Hinweis: Sowohl Windows als auch Linux unterstützen den php_cli-Modus

PHP-cli-Anwendungsszenarien:

1. Vorteile in diesem Bereich, Zitat Worte von Bruder Niao:

Vorteile:
1. Bei Verwendung mehrerer Prozesse ist der Kernel für das Recycling von Ressourcen verantwortlich.
2 Der untergeordnete Prozess führt nicht dazu, dass der gesamte Prozess beendet wird.
3 Ein residenter Hauptprozess, der nur für die Aufgabenverteilung verantwortlich ist >PHP-Multithreading – ja, es ist eine PHP-Multithread-Anwendung, obwohl allgemein jeder glaubt, dass PHP kein Multithreading hat (Curl simuliert kein Multithreading, sondern echtes), aber PHP im php_cli-Modus ist vollständig Multithreading . Derzeit gehört PHP zu einem Daemon-Prozess von Linux. Als ich zuvor „PHP Multi-Threaded Batch Collection and Download of Beauty Pictures (Fortsetzung)“ geschrieben habe, kam es bei der Ausführung durch den Browser zwar zu einem Ausführungszeitlimit oder einem Speicherabbruch, obwohl Curl zur Simulation von Multithreading im Sammlungsprogramm verwendet wurde. Führt dazu, dass das Programm unterbrochen wird (es sind mehrere Versuche erforderlich, um vollständig erfolgreich zu sein). Wenn Sie es jedoch im PHP-CLI-Modus ausführen, werden Sie feststellen, dass das Programm sehr schnell ausgeführt wird und die Vorteile der PHP-Multithread-Ausführung vollständig demonstriert werden.

Hinweis: Diese Multithreading-Methode ist nicht sehr ausgereift und nicht für groß angelegte Generierungsanwendungen geeignet. Sie kann gelegentlich verwendet werden

2. Führen Sie das PHP-Programm regelmäßig aus

Ich habe das Vorherige zusammengefasst. Eine der drei Möglichkeiten, „PHP zur regelmäßigen Ausführung geplanter Aufgaben“ zu verwenden, ist die Verwendung der Cron-Methode von Linux. Wie führt diese Methode PHP-Programme regelmäßig aus? Siehe unten

3. Entwickeln Sie Desktop-Anwendungen

Sie können Ihre grafischen Benutzeroberflächen (GUI)-Anwendungen in Windows oder Linux mit PHP erstellen! Sie benötigen lediglich die Befehlszeilenschnittstelle von PHP und ein GTK-Paket. Dies ermöglicht die Erstellung wirklich tragbarer grafischer Benutzeroberflächenanwendungen (haha, ich wusste vorher nur, dass PHP als Desktop-Programm verwendet werden kann, aber jetzt weiß ich, dass es den php_cli-Modus verwendet), und es besteht keine Notwendigkeit, etwas anderes zu lernen.

4. PHP-Shell-Skripte schreiben
Was sollten Sie tun, wenn Sie nicht wissen, wie man Bash-Shell oder Perl verwendet, aber einige Skripte zur Ausführung benötigen? Zu diesem Zeitpunkt können Sie Shell-Skripte vollständig mit PHP schreiben, mit denen Sie vertraut sind. Haben Sie zu diesem Zeitpunkt plötzlich das Gefühl, dass PHP zu leistungsfähig ist? ——Entwickeln Sie wirklich überall eine Sprache!


So verwenden Sie PHP_CLI

Winken Sie die folgende Ausführungsmethode:
Angenommen, php.exe befindet sich in D:xamppphp und der dos-Befehl kann so ausgeführt werden :




Kopieren Sie den Code

Der Code lautet wie folgt:

D:xamppphpphp.exe D:xampphtdocstest.php

Dann können Sie die Datei test.php ausführen. Hier empfehlen wir die integrierte Umgebung xampp unter der Win-Plattform, die wirklich N-mal leistungsfähiger ist als wamp. Dieses integrierte Paket kann direkt in den DOS-Modus wechseln.


Verwenden Sie php_cli unter Linux
Finden Sie zuerst den Pfad, in dem Sie PHP installiert haben. Nehmen Sie mich als Beispiel:




php ist im Pfad installiert / usr/local/ Unter php/bin/php PHP-CLI-Modus lernen – PHP-Befehlszeilenmodus



Kopieren Sie den Code

Der Code lautet wie folgt:

/usr/local/php/ bin/php /usr/local/ apache/htdocs/a.php

kann a ausführen. PHP-Datei


Was Sie über die PHP_CLI-Programmierung wissen müssen
Wie erkennt man, dass die Umgebung den php_cli-Modus unterstützt?




Kopieren Sie den Code

Der Code lautet wie folgt:

<?php
//方法1
if (PHP_SAPI === &#39;cli&#39;)
{
   // ...
}
//方法2
if (php_sapi_name() === &#39;cli&#39;)
{
   // ...
}
Wie empfängt PHP_ClI Parameter?

Standardmäßig ist der von /usr/local/php/bin/php empfangene Parameter $argv , und diese Variable ist fixiert! In der PHP-Datei erhält var_dump($argv);

die folgenden Ergebnisse:




Sie können eine einfache Verarbeitungsfunktion schreiben, um diese Methode in eine umzuwandeln häufig verwendeter Parametermodus für GET/Post. PHP-CLI-Modus lernen – PHP-Befehlszeilenmodus
Einfacher Code:



Code kopieren

Der Code lautet wie folgt:

<?php 
function parseArgs($argv){ 
array_shift($argv); 
$out = array(); 
foreach ($argv as $arg){ 
if (substr($arg,0,2) == &#39;--&#39;){ 
$eqPos = strpos($arg,&#39;=&#39;); 
if ($eqPos === false){ 
$key = substr($arg,2); 
$out[$key] = isset($out[$key]) ? $out[$key] : true; 
} else { 
$key = substr($arg,2,$eqPos-2); 
$out[$key] = substr($arg,$eqPos+1); 
} 
} else if (substr($arg,0,1) == &#39;-&#39;){ 
if (substr($arg,2,1) == &#39;=&#39;){ 
$key = substr($arg,1,1); 
$out[$key] = substr($arg,3); 
} else { 
$chars = str_split(substr($arg,1)); 
foreach ($chars as $char){ 
$key = $char; 
$out[$key] = isset($out[$key]) ? $out[$key] : true; 
} 
} 
} else { 
$out[] = $arg; 
} 
} 
return $out; 
} 
var_dump($argv); 
var_dump(parseArgs($argv));exit;


执行结果:

PHP-CLI-Modus lernen – PHP-Befehlszeilenmodus

当然实现的方法不止一个,大家可以尝试其他方法实现!

例外关于php的cli还有很多参数可以加入:具体可以参考:http://php.net/manual/en/features.commandline.php

关于定时执行
cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业,周期性作业,比如备份数据 打开/etc/crontab,添加:

复制代码 代码如下:

/usr/bin/php -f /data/htdocs/test.php



关于corntab的详细使用参考51cto专题:Linux计划任务——cron服务

本文参考资料
http://www.php.cn/php-weizijiaocheng-312213.html

http://www.php.cn/php-weizijiaocheng-307840.html

http://www.php.cn/php-weizijiaocheng-307856.html

附注:2012-06-16 增加php_cli编程需知等

相关推荐:

vue cli升级webapck4的使用方法

Das obige ist der detaillierte Inhalt vonPHP-CLI-Modus lernen – PHP-Befehlszeilenmodus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn