informatique:php:php
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
informatique:php:php [2021/11/12 08:11] – [PCRE et UTF-8] alexis | informatique:php:php [2022/09/29 03:00] (Version actuelle) – alexis | ||
---|---|---|---|
Ligne 4: | Ligne 4: | ||
[[https:// | [[https:// | ||
===== Utiliser la ligne de commande ===== | ===== Utiliser la ligne de commande ===== | ||
+ | <WRAP prewrap> | ||
<code bash> | <code bash> | ||
# Afficher la version | # Afficher la version | ||
Ligne 23: | Ligne 24: | ||
php -a | php -a | ||
</ | </ | ||
+ | </ | ||
===== Fonctions méconnues ===== | ===== Fonctions méconnues ===== | ||
Ligne 43: | Ligne 45: | ||
===== array_pop vs. array_shift ===== | ===== array_pop vs. array_shift ===== | ||
+ | La fonction '' | ||
+ | La finalité de ces fonctions est similaire mais il faut prêter attention aux performances car '' | ||
+ | Pour un tableau de petite taille, la différence est imperceptible mais quand sa taille augmente, cette différence se fait bien sentir. | ||
+ | En effet, la complexité de '' | ||
+ | |||
+ | Voici un exemple pour s'en convaincre : | ||
+ | <WRAP prewrap> | ||
+ | <code php benchmark.php> | ||
+ | <?php | ||
+ | |||
+ | $shift = array_fill(0, | ||
+ | $pop = $shift; | ||
+ | |||
+ | echo ' | ||
+ | $shiftStart = microtime(true); | ||
+ | while (null !== array_shift($shift)) { | ||
+ | } | ||
+ | echo (microtime(true) - $shiftStart), | ||
+ | $popStart = microtime(true); | ||
+ | while (null !== array_pop($pop)) { | ||
+ | } | ||
+ | echo (microtime(true) - $popStart), PHP_EOL; | ||
+ | |||
+ | </ | ||
+ | </ | ||
===== PCRE et UTF-8 ===== | ===== PCRE et UTF-8 ===== | ||
Ligne 53: | Ligne 80: | ||
===== Convertir un tableau en CSV ===== | ===== Convertir un tableau en CSV ===== | ||
Il n'y a pas de fonction pour faire ça directement. Mais il est quand même possible de le faire en combinant certains outils de PHP. | Il n'y a pas de fonction pour faire ça directement. Mais il est quand même possible de le faire en combinant certains outils de PHP. | ||
+ | <WRAP prewrap> | ||
<code php> | <code php> | ||
// Ouverture d'un fichier mémoire en lecture/ | // Ouverture d'un fichier mémoire en lecture/ | ||
Ligne 65: | Ligne 93: | ||
fclose($fp); | fclose($fp); | ||
</ | </ | ||
+ | </ | ||
===== Utiliser le client SOAP avec un certificat ===== | ===== Utiliser le client SOAP avec un certificat ===== | ||
Ligne 72: | Ligne 101: | ||
Heureusement, | Heureusement, | ||
+ | <WRAP prewrap> | ||
<code php> | <code php> | ||
$wsdl = "< | $wsdl = "< | ||
Ligne 91: | Ligne 121: | ||
$soap_client = new \SoapClient($wsdl, | $soap_client = new \SoapClient($wsdl, | ||
</ | </ | ||
+ | </ | ||
===== Curiosités ===== | ===== Curiosités ===== | ||
==== Quine ==== | ==== Quine ==== | ||
+ | <WRAP prewrap> | ||
<code php> | <code php> | ||
<?php | <?php | ||
readfile(__FILE__); | readfile(__FILE__); | ||
</ | </ | ||
+ | </ | ||
==== Boucle " | ==== Boucle " | ||
Cette boucle est une boucle infinie. | Cette boucle est une boucle infinie. | ||
+ | <WRAP prewrap> | ||
<code php> | <code php> | ||
for (;;) { | for (;;) { | ||
Ligne 106: | Ligne 140: | ||
} | } | ||
</ | </ | ||
+ | </ | ||
Elle est équivalente à cette autre boucle infinie : | Elle est équivalente à cette autre boucle infinie : | ||
+ | <WRAP prewrap> | ||
<code php> | <code php> | ||
while (true) { | while (true) { | ||
Ligne 112: | Ligne 148: | ||
} | } | ||
</ | </ | ||
+ | </ | ||
====== Obsolète ====== | ====== Obsolète ====== | ||
Ligne 117: | Ligne 154: | ||
Par défaut, la version de PHP installée sur cette version est la version 5.3.10. Voici les différentes étapes pour pouvoir utiliser plusieurs versions de PHP simultanement avec Apache. | Par défaut, la version de PHP installée sur cette version est la version 5.3.10. Voici les différentes étapes pour pouvoir utiliser plusieurs versions de PHP simultanement avec Apache. | ||
==== Installation des bibliothèques nécessaires ==== | ==== Installation des bibliothèques nécessaires ==== | ||
+ | <WRAP prewrap> | ||
<code bash> | <code bash> | ||
# Bibliothèques pour la compilation | # Bibliothèques pour la compilation | ||
Ligne 135: | Ligne 173: | ||
libapache2-mod-fastcgi | libapache2-mod-fastcgi | ||
</ | </ | ||
+ | </ | ||
+ | |||
==== Compilation de PHP ==== | ==== Compilation de PHP ==== | ||
+ | <WRAP prewrap> | ||
<code bash> | <code bash> | ||
# récupération du code source | # récupération du code source | ||
Ligne 176: | Ligne 217: | ||
sudo cp php.ini-production / | sudo cp php.ini-production / | ||
</ | </ | ||
+ | </ | ||
**Notes** : | **Notes** : | ||
* '' | * '' | ||
* '' | * '' | ||
+ | |||
==== Configuration de Apache - FastCGI ==== | ==== Configuration de Apache - FastCGI ==== | ||
Il faut commencer par activer le module FastCGI dans Apache. | Il faut commencer par activer le module FastCGI dans Apache. | ||
Ensuite, il faut créer le fichier /// | Ensuite, il faut créer le fichier /// | ||
+ | <WRAP prewrap> | ||
<code bash> | <code bash> | ||
#!/bin/sh | #!/bin/sh | ||
Ligne 194: | Ligne 238: | ||
exec / | exec / | ||
</ | </ | ||
+ | </ | ||
Puis rendre ce fichier exécutable. | Puis rendre ce fichier exécutable. | ||
+ | |||
==== Configuration de Apache - VirtualHost ==== | ==== Configuration de Apache - VirtualHost ==== | ||
Il faut configurer normalement le VirtualHost pour le site que nous voulons servir. Il faut cependant ajouter quelques instructions spécifiques à l' | Il faut configurer normalement le VirtualHost pour le site que nous voulons servir. Il faut cependant ajouter quelques instructions spécifiques à l' | ||
- | - Il faut ajouter l' | + | - Il faut ajouter l' |
Options Indexes FollowSymLinks MultiViews ExecCGI | Options Indexes FollowSymLinks MultiViews ExecCGI | ||
- | </ | + | </code></ |
- | - Il faut ajouter la méthode que l'on va utiliser pour manipuler les fichiers php :<code apache> | + | - Il faut ajouter la méthode que l'on va utiliser pour manipuler les fichiers php :<WRAP prewrap><code apache> |
AddHandler fastcgi .php | AddHandler fastcgi .php | ||
- | </ | + | </code></ |
- | - ll faut configurer la méthode que l'on va utiliser pour manipuler les fichiers php :<code apache> | + | - ll faut configurer la méthode que l'on va utiliser pour manipuler les fichiers php :<WRAP prewrap><code apache> |
Action fastcgi / | Action fastcgi / | ||
- | </ | + | </code></ |
- | - Il faut configurer l' | + | - Il faut configurer l' |
ScriptAlias /cgi-bin/ "/ | ScriptAlias /cgi-bin/ "/ | ||
- | </ | + | </code></ |
- | - Il faut configurer le dossier dans lequel se trouve les scripts utilisés par le module FastCGI :<code apache> | + | - Il faut configurer le dossier dans lequel se trouve les scripts utilisés par le module FastCGI :<WRAP prewrap><code apache> |
< | < | ||
AllowOverride All | AllowOverride All | ||
Ligne 218: | Ligne 264: | ||
Allow from all | Allow from all | ||
</ | </ | ||
- | </ | + | </code></ |
Le résultat final devrait ressembler à ce qui suit : | Le résultat final devrait ressembler à ce qui suit : | ||
+ | <WRAP prewrap> | ||
<code apache> | <code apache> | ||
< | < | ||
Ligne 253: | Ligne 300: | ||
</ | </ | ||
</ | </ | ||
+ | </ | ||
**Attention**, | **Attention**, | ||
Ligne 267: | Ligne 315: | ||
===== Installer HHVM sur Ubuntu 15.10 ===== | ===== Installer HHVM sur Ubuntu 15.10 ===== | ||
+ | <WRAP prewrap> | ||
<code bash> | <code bash> | ||
# Gère les dépôts utilisés pour installer des programmes (common) | # Gère les dépôts utilisés pour installer des programmes (common) | ||
Ligne 283: | Ligne 332: | ||
sudo apt-get install hhvm | sudo apt-get install hhvm | ||
</ | </ | ||
+ | </ | ||
Pour plus d' | Pour plus d' | ||
informatique/php/php.1636733464.txt.gz · Dernière modification : 2021/11/12 08:11 de alexis