Outils pour utilisateurs

Outils du site


informatique:php:php

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
informatique:php:php [2021/11/12 08:26] – [array_pop vs. array_shift] alexisinformatique:php:php [2022/09/29 03:00] (Version actuelle) alexis
Ligne 4: Ligne 4:
 [[https://stackoverflow.com/questions/3737139/reference-what-does-this-symbol-mean-in-php?rq=1|Liste]] pour la compréhension des opérateurs parce que c'est impossible de les rechercher dans un moteur, par exemple ''...''. [[https://stackoverflow.com/questions/3737139/reference-what-does-this-symbol-mean-in-php?rq=1|Liste]] pour la compréhension des opérateurs parce que c'est impossible de les rechercher dans un moteur, par exemple ''...''.
 ===== 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
 </code> </code>
 +</WRAP>
  
 ===== Fonctions méconnues ===== ===== Fonctions méconnues =====
Ligne 49: Ligne 51:
  
 Voici un exemple pour s'en convaincre : Voici un exemple pour s'en convaincre :
 +<WRAP prewrap>
 <code php benchmark.php> <code php benchmark.php>
 <?php <?php
Ligne 66: Ligne 69:
  
 </code> </code>
 +</WRAP>
 +
 ===== PCRE et UTF-8 ===== ===== PCRE et UTF-8 =====
 Il est possible de gérer des chaînes de caractères UTF-8 sans avoir besoin de recompiler PHP en activant le drapeau PCRE UTF-8. Pour faire cela, il suffit d'utiliser les options natives de la bibliothèque PCRE. Il est possible de gérer des chaînes de caractères UTF-8 sans avoir besoin de recompiler PHP en activant le drapeau PCRE UTF-8. Pour faire cela, il suffit d'utiliser les options natives de la bibliothèque PCRE.
Ligne 75: 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/écriture ... // Ouverture d'un fichier mémoire en lecture/écriture ...
Ligne 87: Ligne 93:
 fclose($fp); fclose($fp);
 </code> </code>
 +</WRAP>
  
 ===== Utiliser le client SOAP avec un certificat ===== ===== Utiliser le client SOAP avec un certificat =====
Ligne 94: Ligne 101:
 Heureusement, il existe une autre façon de faire en injectant le certificat du client ainsi que son mot de passe directement dans la requête SSL. Heureusement, il existe une autre façon de faire en injectant le certificat du client ainsi que son mot de passe directement dans la requête SSL.
  
 +<WRAP prewrap>
 <code php> <code php>
 $wsdl = "<URL du fichier de description du service web>"; $wsdl = "<URL du fichier de description du service web>";
Ligne 113: Ligne 121:
 $soap_client = new \SoapClient($wsdl, $soap_options); $soap_client = new \SoapClient($wsdl, $soap_options);
 </code> </code>
 +</WRAP>
  
 ===== Curiosités ===== ===== Curiosités =====
 ==== Quine ==== ==== Quine ====
 +<WRAP prewrap>
 <code php> <code php>
 <?php <?php
 readfile(__FILE__); readfile(__FILE__);
 </code> </code>
 +</WRAP>
  
 ==== Boucle "for" sans paramètres ==== ==== Boucle "for" sans paramètres ====
 Cette boucle est une boucle infinie. Cette boucle est une boucle infinie.
 +<WRAP prewrap>
 <code php> <code php>
 for (;;) { for (;;) {
Ligne 128: Ligne 140:
 } }
 </code> </code>
 +</WRAP>
 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 134: Ligne 148:
 } }
 </code> </code>
 +</WRAP>
  
 ====== Obsolète ====== ====== Obsolète ======
Ligne 139: 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 157: Ligne 173:
 libapache2-mod-fastcgi libapache2-mod-fastcgi
 </code> </code>
 +</WRAP>
 +
 ==== 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 198: Ligne 217:
 sudo cp php.ini-production /etc/php55/php.ini sudo cp php.ini-production /etc/php55/php.ini
 </code> </code>
 +</WRAP>
  
 **Notes** : **Notes** :
   * ''%%--with-mysql%%'' ne doit plus être utilisé car l'extension n'est plus supportée (([[https://wiki.php.net/rfc/mysql_deprecation|Request for Comments: ext/mysql deprecation]])).   * ''%%--with-mysql%%'' ne doit plus être utilisé car l'extension n'est plus supportée (([[https://wiki.php.net/rfc/mysql_deprecation|Request for Comments: ext/mysql deprecation]])).
   * ''%%--with-mysqli%%'' et ''%%--with-pdo-mysql%%'' utilisent par défaut la bibliothèque //libmysqlclient//. Il est possible de la remplacer par la bibliothèque //mysqlnd// qui est native (([[http://php.net/manual/en/mysqlinfo.library.choosing.php|Choosing a library]])).   * ''%%--with-mysqli%%'' et ''%%--with-pdo-mysql%%'' utilisent par défaut la bibliothèque //libmysqlclient//. Il est possible de la remplacer par la bibliothèque //mysqlnd// qui est native (([[http://php.net/manual/en/mysqlinfo.library.choosing.php|Choosing a library]])).
 +
 ==== 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 ///var/www/cgi-bin/php-cgi-5.5// : Ensuite, il faut créer le fichier ///var/www/cgi-bin/php-cgi-5.5// :
 +<WRAP prewrap>
 <code bash> <code bash>
 #!/bin/sh #!/bin/sh
Ligne 216: Ligne 238:
 exec /usr/local/php55/bin/php-cgi exec /usr/local/php55/bin/php-cgi
 </code> </code>
 +</WRAP>
  
 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'utilisation de FastCGI. Il faut configurer normalement le VirtualHost pour le site que nous voulons servir. Il faut cependant ajouter quelques instructions spécifiques à l'utilisation de FastCGI.
  
-  - Il faut ajouter l'option d'exécution de CGI<code apache>+  - Il faut ajouter l'option d'exécution de CGI<WRAP prewrap><code apache>
 Options Indexes FollowSymLinks MultiViews ExecCGI Options Indexes FollowSymLinks MultiViews ExecCGI
-</code> +</code></WRAP
-  - 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> +</code></WRAP
-  - 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 /cgi-bin/php-cgi-5.5 Action fastcgi /cgi-bin/php-cgi-5.5
-</code> +</code></WRAP
-  - Il faut configurer l'alias utilisé à l'étape précédente :<code apache>+  - Il faut configurer l'alias utilisé à l'étape précédente :<WRAP prewrap><code apache>
 ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
-</code> +</code></WRAP
-  - 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>
 <Directory /var/www/cgi-bin/> <Directory /var/www/cgi-bin/>
     AllowOverride All     AllowOverride All
Ligne 240: Ligne 264:
     Allow from all     Allow from all
 </Directory> </Directory>
-</code>+</code></WRAP>
 Le résultat final devrait ressembler à ce qui suit : Le résultat final devrait ressembler à ce qui suit :
 +<WRAP prewrap>
 <code apache> <code apache>
 <VirtualHost *:80> <VirtualHost *:80>
Ligne 275: Ligne 300:
 </VirtualHost> </VirtualHost>
 </code> </code>
 +</WRAP>
 **Attention**, pour que cette configuration fonctionne, il faut que le module actions soit activé. Il est également important de noter que cette configuration peut cohabiter avec le module php. **Attention**, pour que cette configuration fonctionne, il faut que le module actions soit activé. Il est également important de noter que cette configuration peut cohabiter avec le module php.
  
Ligne 289: 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 305: Ligne 332:
 sudo apt-get install hhvm sudo apt-get install hhvm
 </code> </code>
 +</WRAP>
 Pour plus d'informations, voir la [[https://docs.hhvm.com/hhvm/installation/linux#ubuntu-15.10-wily-werewolf|page officielle]]. Pour plus d'informations, voir la [[https://docs.hhvm.com/hhvm/installation/linux#ubuntu-15.10-wily-werewolf|page officielle]].
  
informatique/php/php.1636734381.txt.gz · Dernière modification : 2021/11/12 08:26 de alexis