Mode php cli apprentissage-mode ligne de commande PHP

不言
Libérer: 2023-03-23 10:38:02
original
12313 Les gens l'ont consulté

Je savais auparavant que le mode php-cli est une exécution de programmes PHP de type shell, mais j'ai toujours pensé que c'était une méthode rétrospective et que cela ne devrait avoir aucun sens, car je n'ai jamais rencontré personne utilisant ce mode cli. pour la programmation. Mais aujourd'hui j'ai rencontré une application qui utilise le mode cli

Introduction au mode php_cli

php-cli est l'abréviation de php Command Line Interface, comme son nom l'indique, il est php dans L'interface exécutée sur la ligne de commande est différente de l'environnement PHP (php-cgi, isapi, etc.) exécuté sur le serveur Web. En d'autres termes, PHP peut non seulement écrire des pages Web frontales, mais également. être utilisé pour écrire des programmes en arrière-plan. PHP CLI Shell Scripting applique tous les avantages de PHP, permettant la création de scripts côté serveur ou système ou même d'applications avec interface graphique ! ——Remarque : Windows et Linux prennent en charge le mode php_cli

Scénarios d'application PHP-cli :

Application multithread
Avantages dans ce domaine, citez. Mots de frère Niao :

Avantages :
Lors de l'utilisation de plusieurs processus, une fois le processus enfant terminé, le noyau sera responsable du recyclage des ressources
Lors de l'utilisation de plusieurs processus, la sortie anormale de. le processus enfant ne provoquera pas la sortie du thread entier. Le processus parent a encore une chance de reconstruire le processus
3. Un processus principal résident, uniquement responsable de la distribution des tâches, la logique est plus claire. >php multi-threading - oui, c'est une application php multi-thread, bien que tout le monde pense généralement que PHP n'a pas de multi-threading (curl simule le multi-thread plutôt que le réel), mais PHP en mode php_cli est complètement multi-thread . À l’heure actuelle, php appartient à un processus démon de Linux. Lorsque j'ai écrit "PHP Multi-threaded Batch Collection and Download of Beauty Pictures (Suite)" auparavant, bien que curl ait été utilisé pour simuler le multi-threading dans le programme de collecte, un délai d'exécution ou un abandon de mémoire se produisait également lorsque le navigateur l'exécutait. Provoque l'interruption du programme (il faut plusieurs tentatives pour réussir complètement), mais si vous l'exécutez en mode php-cli, vous constaterez que le programme s'exécute très rapidement et que les avantages de l'exécution multithread PHP sont pleinement démontrés.

Remarque : Cette méthode multi-thread n'est pas très mature et n'est pas adaptée aux applications de génération à grande échelle. Elle peut être utilisée occasionnellement

2. Exécutez le programme php régulièrement
<.>J'ai résumé le précédent. L'une des trois façons d'utiliser "PHP pour exécuter régulièrement des tâches planifiées" est d'utiliser la méthode cron de Linux. Alors, comment cette méthode exécute-t-elle régulièrement des programmes PHP ? Veuillez voir ci-dessous

3. Développer des applications de bureau

Vous pouvez créer vos applications d'interface utilisateur graphique (GUI) sous Windows ou Linux en utilisant PHP ! Tout ce dont vous avez besoin est l'interface de ligne de commande de PHP et un package GTK. Cela permettra la création d'applications d'interface utilisateur graphique véritablement portables (haha, je savais seulement que php pouvait être utilisé comme programme de bureau auparavant, mais maintenant je sais qu'il utilise le mode php_cli), et il n'est pas nécessaire d'apprendre autre chose.

4. Écrivez des scripts shell PHP
Que devez-vous faire si vous ne savez pas comment utiliser le shell bash ou Perl, mais que vous avez besoin de scripts à exécuter ? À l'heure actuelle, vous pouvez complètement écrire des scripts shell en utilisant PHP que vous connaissez. En ce moment, avez-vous soudainement l'impression que PHP est trop puissant ? ——Développez véritablement une langue partout !


Comment utiliser PHP_CLI

Gagnez la méthode d'exécution suivante :
Supposons que php.exe se trouve dans D:xamppphp et que la commande dos peut être exécutée comme ceci :




Copiez le code

Le code est le suivant :

D:xamppphpphp.exe D:xampphtdocstest.php

vous pouvez alors l'exécuter dans le fichier test.php. Nous recommandons ici l'environnement intégré xampp sous la plateforme win, qui est vraiment N fois plus puissant que wamp. Ce package intégré peut passer directement en mode dos.


Utilisez php_cli sous Linux
Trouvez d'abord le chemin où vous avez installé php, prenez-moi comme exemple :




php est installé dans le chemin / usr/local/ Sous php/bin/php Mode php cli apprentissage-mode ligne de commande PHP



Copiez le code

Le code est le suivant :

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

peut exécuter a. fichier php


Ce qu'il faut savoir sur la programmation PHP_CLI
Comment détecter que l'environnement supporte le mode php_cli ?




Copiez le code

Le code est le suivant :

<?php
//方法1
if (PHP_SAPI === &#39;cli&#39;)
{
   // ...
}
//方法2
if (php_sapi_name() === &#39;cli&#39;)
{
   // ...
}
Copier après la connexion
Comment PHP_ClI reçoit-il les paramètres

Par défaut, le paramètre reçu par /usr/local/php/bin/php est $argv ? , et cette variable est fixe ! Dans le fichier php, var_dump($argv);

obtient les résultats suivants :




Vous pouvez écrire une fonction de traitement simple pour convertir cette méthode en un Mode paramètre couramment utilisé pour GET/post. Mode php cli apprentissage-mode ligne de commande PHP
Code simple :



Copier le code

Le code est le suivant :

<?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;
Copier après la connexion


执行结果:

Mode php cli apprentissage-mode ligne de commande PHP

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

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

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

复制代码 代码如下:

/usr/bin/php -f /data/htdocs/test.php
Copier après la connexion



关于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的使用方法

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal