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
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
Copiez le code
/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
<?php //方法1 if (PHP_SAPI === 'cli') { // ... } //方法2 if (php_sapi_name() === 'cli') { // ... }
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.
Code simple :
Copier le code
<?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服务
本文参考资料
//m.sbmmt.com/php-weizijiaocheng-312213.html
//m.sbmmt.com/php-weizijiaocheng-307840.html
//m.sbmmt.com/php-weizijiaocheng-307856.html
附注:2012-06-16 增加php_cli编程需知等
相关推荐:
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!