Heim >Backend-Entwicklung >PHP-Tutorial >PHP-CLI-Modus lernen – PHP-Befehlszeilenmodus
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
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
Kopieren Sie den Code
/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
<?php //方法1 if (PHP_SAPI === 'cli') { // ... } //方法2 if (php_sapi_name() === 'cli') { // ... }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.
Einfacher Code:
Code kopieren
<?php function parseArgs($argv){ array_shift($argv); $out = array(); foreach ($argv as $arg){ if (substr($arg,0,2) == '--'){ $eqPos = strpos($arg,'='); 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) == '-'){ if (substr($arg,2,1) == '='){ $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还有很多参数可以加入:具体可以参考: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编程需知等
相关推荐:
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!