IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

FAQ PHP

FAQ PHPConsultez toutes les FAQ

Nombre d'auteurs : 68, nombre de questions : 580, dernière mise à jour : 18 septembre 2021 

 
OuvrirSommaireGénéralitésphp.ini

Le fichier php.ini permet de configurer toute une palette de paramètres du langage PHP, c'est un fichier au format texte et par défaut, il se trouve dans le dossier des sources de PHP. Entre autres choses, il est possible d'y activer les modules d'extension de PHP. Les modules d'extension sont des jeux d'instructions qui permettent de manipuler un type de données.
Il existe par exemple un module d'extension PDF pour la manipulation des fichiers Adobe Acrobat, tandis que le module GD permet de créer des images. Certains modules d'extension sont inclus dans le pack de base de PHP mais peuvent être désactivés (par exemple les modules des bases de données MySQL, PostgreSQL ou ODBC).

Il est rédigé selon la syntaxe habituelle des fichiers php.ini, et les valeurs qu'il contient dépend de votre environnement. Par exemple, pour votre machine de développement, vous devriez affiher les erreurs tandis que pour la machine de production, il est préférable de les occulter.

Mis à jour le 5 août 2008  par Eric Berger

Lien : Qu'est-ce qu'une extension pour PHP ?

Cette information figure dans les tableaux générés par la fonction phpinfo(). Recherchez-y une ligne Configuration File (php.ini) Path pour en obtenir le chemin.

Pour ceux qui installent PHP à partir des sources, il s'agira par défaut du répertoire $PREFIX/lib/ où $PREFIX correspond à la valeur de l'option --prefix lors de la configuration. S'il est omis, le préfixe prendra la valeur /usr/local/ (le chemin complet du fichier php.ini sera alors /usr/local/lib/php.ini). Il est possible de spécifier un tout autre chemin à l'aide de l'option --with-config-file=/etc où le fichier sera ici cherché dans le répertoire /etc/. Le fichier php.ini doit être créé à partir d'un des deux fichiers php.ini-dist ou php.ini-recommended que vous trouverez à la racine des sources de PHP.

Aux utilisateurs de la solution tout en un EasyPHP : vous devez modifier le fichier php.ini situé dans le répertoire conf_files car ce logiciel détecte les modifications apportées sur le fichier de configuration de PHP et va ensuite écraser la configuration précédente. D'autre part, vous pouvez utiliser dans les fichiers de ce répertoire des variables comme ${path}, qui sera remplacée par le chemin complet de la racine d'EasyPHP.

Si PHP est intégré à Apache sous la forme d'un module, vous devrez redémarrer Apache après chaque modification du fichier php.ini (inutile dans le cas d'une utilisation CGI puisqu'il est relu à chaque requête).

Mis à jour le 5 août 2008  par Julp

Lien : Comment savoir si le fichier php.ini a été pris en compte ?

Parmi les tableaux affichés par la fonction phpinfo(), cherchez la ligne intitulée Configuration File (php.ini) Path. Si le nom du fichier php.ini apparaît, cela signifie que le fichier a été chargé. À l'inverse, si seul un répertoire apparaît, c'est qu'il n'y a aucun fichier php.ini à cet endroit.

Mis à jour le 5 août 2008  par Julp

Lien : Où trouver le fichier php.ini ?

Soit en éditant le fichier php.ini soit au cours du script avec la fonction ini_set($var, $val).

Cette fonction permet de changer la valeur d'une option de configuration du php.ini pour la seule durée du script en cours d'exécution. Elle change l'option $var pour lui donner la valeur $val. Elle retourne FALSE en cas d'échec, ou l'ancienne valeur en cas de réussite.

Exemple :

 
Sélectionnez
if(! ini_set("max_execution_time", "60")) {echo "échec";}

Cet exemple permet de modifier le temps maximum autorisé d'exécution du script.

Au contraire, la fonction ini_restore($var) permet de restaurer la valeur de la variable $var par celle définie dans le fichier php.ini. Elle permet donc d'annuler les modifications effectuées sur l'option $var par la fonction ini_set().

Mis à jour le 5 août 2008  par Cyberzoide

Le fichier de configuration php.ini permet d'interdire l'utilisation de certaines fonctions dans les scripts PHP pour des raisons de sécurité (par exemple, interdire l'utilisation de system(), exec(), et autres...).

 
Sélectionnez
; This directive allows you to disable certain functions for security reasons.
; It receives a comma-delimited list of function names. This directive is
; *NOT* affected by whether Safe Mode is turned On or Off.
disable_functions =

Cette directive de configuration prend pour valeur une chaîne de caractères délimitée par des doubles quotes. Cette chaîne est composée de la liste des fonctions à interdire, séparées par une virgule.

Exemple :

 
Sélectionnez
disable_functions = "system, exec, phpinfo"

Cette directive n'est pas inactivée par le safe mode.

Mis à jour le 5 août 2008  par Cyberzoide

Le fichier de configuration php.ini permet d'interdire l'utilisation de certaines classes dans les scripts PHP pour des raisons de sécurité.

 
Sélectionnez
disable_classes =

Cette directive de configuration prend pour valeur une chaîne de caractères délimitée par des doubles quotes. Cette chaîne est composée de la liste des classes à interdire, séparées par une virgule.

Exemple :

 
Sélectionnez
disable_classes = "SQL_user"

Cette directive n'est pas inactivée par le safe mode.

Mis à jour le 5 août 2008  par Cyberzoide

Par défaut, PHP offre parfois trop de possibilités aux scripts et cela peut poser des problèmes de sécurité. Le SAFE MODE est là pour répondre en partie à ces problèmes en limitant certaines possibilités de PHP. Dans le cas d'un hébergement mutualisé, le SAFE MODE est souvent activé.

Note : on ne parle pas ici de faille de sécurité de PHP mais de possibilité qu'offre PHP et dont l"utilisation peut poser des problèmes. Exemple : avec la SAFE MODE activé, il est impossible à un développeur de créer un script PHP qui supprimerait des fichiers autres que les siens sur le serveur.

Mis à jour le 5 août 2008  par Hachesse

PHP limite la durée d'exécution des scripts. Ceci pour des raisons de sécurité et de performance. En effet, un script fou qui contiendrait une boucle infinie due à une erreur de programmation consommerait énormément de ressources. Or les hébergeurs ne peuvent se permettre de compromettre les performances de leurs serveurs, ainsi ils limitent cette durée d'exécution.

En cas de dépassement de cette durée limite, il survient cette erreur :

 
Sélectionnez
Fatal error: Maximum execution time exceeded in your script on line 16

Mais si le traitement d'un script exige de dépasser cette durée limite, que faire ? Il existe alors deux méthodes possibles :

  • modifier la directive max_execution_time du fichier de configuration php.ini
  • appeler la fonction set_time_limit($time) qui rajoute la durée $time à celle définie par max_execution_time

La valeur de cette durée est fixée par défaut à 30 secondes. L'unité est la seconde. Pour ne fixer aucune limite de temps, il faut lui donner la valeur zéro.

A noter que la fonction set_time_limit est désactivée lorsque PHP fonctionne en safe mode. Il apparaîtra alors l'erreur suivante :

 
Sélectionnez
Warning: Cannot set time limit in safe mode in your script on line 18

L'hébergeur gratuit Free.fr tourne en safe mode et ne donne pas accès au fichier de configuration, dans ces conditions, il n'est donc pas possible de changer la durée limite d'exécution des scripts.

Mis à jour le 5 août 2008  par Cyberzoide

La fonction ini_get($var) retourne la valeur de l'option $var.

Elle permet de connaître les valeurs définies dans les directives de configuration du fichier php.ini.

Attention, cette fonction est affectée par ini_set().

Mis à jour le 5 août 2008  par Cyberzoide

Il possible de connaître la version de PHP ainsi que les modules chargés à l'aide de la constante PHP_VERSION et de la fonction phpinfo
L'utilisation de cette fonction est très simple, il vous suffit de créer un script PHP contenant le code suivant :

 
Sélectionnez
phpinfo();

Sur la première ligne est affichée la version de PHP. Dans le même tableau sont affichées ensuite des informations comme le type de système d'exploitation, la commande utilisée pour compiler PHP, le type de fonctionnement de PHP (CGI ou module) et le ou les fichiers ".ini" utilisés pour la configuration de PHP.

Vient ensuite un tableau "PHP Core" qui montre les valeurs des différentes directives indiquées dans les fichiers ".ini".
Les informations des modules suivent avec un tableau pour chaque module.
À la fin se trouve le contenu des variables d'environnement ainsi que des variables "$_REQUEST", "$_GET", "$_POST", "$_COOKIE", "$_SERVER" et "$_ENV".

Mis à jour le 10 juillet 2007  par Forum PHP
 
Sélectionnez
<?php
/*
Ce script vous permet de connaître toutes les fonctions disponibles sur votre serveur
Il vous permet également d'accéder facilement à la documentation française de cette
fonction sur le site officiel de PHP
Ce Script ne fonctionne qu'avec les versions 4.0 et supérieur de PHP

Auteurs : julp et hachesse
*/
?>

<h2>Liste des modules disponibles :</h2>
<ol start="1" type="I">
   <?php
   $listModules = get_loaded_extensions();
   foreach ($listModules as $module){
      echo '<li>Module : <b><a href="#'.$module.'">'.$module.'</a></b><br />';
   }
   ?>
</ol>
<br /><br />

<h2>Détail des fonctions par module:</h2>
<ol type="I">
   <?php
   foreach ($listModules as $module) {
      $listFunctions = get_extension_funcs($module);
      sort($listFunctions);
      echo '<li id="'.$module.'">'.$module.'<ol type="1">';
      foreach ($listFunctions as $function) {
          $param = str_replace('_', '-', $function);
          echo '<li><a href="http://fr.php.net/'.$param.'">'.$function.'</a></li>';
      }
      echo '</ol></li>';
   }
   ?>
</ul>
Créé le 12 février 2004  par Julp, Hachesse

Il existe deux directives du fichier de configuration php.ini permettant de charger un script avant ou après le chargement d'une page. Il s'agit des variables

 
Sélectionnez
auto_prepend_file   =
auto_append_file   =

Voir un exemple d'utilisation.

Créé le 8 juillet 2003  par f-demu01

La liste des répertoires utilisés par PHP pour inclure un fichier est définie par la directive "include_path".
La valeur de cette directive peut être définie dans le fichier "php.ini" ou à l'aide des fonctions "set_include_path" ou "ini_set". Exemple d'utilisation :

 
Sélectionnez
// Fonctionne depuis PHP 4.3.0
set_include_path('.;c:/scripts');

// Fonctionne sur toutes les versions
ini_set('include_path', '.;c:/script');

Ces commandes définissent les chemins où chercher les fichiers à inclure et on peut utiliser les commandes "include" et "require" de la façon suivante :

 
Sélectionnez
require 'rep/fichier.php';
require '../repertoire2/fichier.php';

Avec la 1re ligne, PHP va d'abord chercher le fichier "fichier.php" dans le répertoire "rep" du répertoire courant. Si le fichier n'existe pas, la recherche continue avec le fichier "c:/script/rep/fichier.php".

Avec la 2me ligne, PHP va d'abord chercher le fichier "fichier.php" dans le répertoire "repertoire2" qui se trouve un niveau au dessus du répertoire courant. Si le fichier n'existe pas, la recherche continue avec le fichier "c:/repertoire2/fichier.php".

Entre chaque répertoire, le séparateur ";" est utilisé sous Windows. Sous Linux, il faut utiliser ":". Pour faire du code qui fonctionne avec n'importe quel système d'exploitation, vous pouvez utiliser la constante PATH_SEPARATOR (Comment définir des chemins vers des fichiers qui fonctionnent avec Linux et Windows ?).

Mis à jour le 12 septembre 2005  par Forum PHP

Lien : Comment définir des chemins vers des fichiers qui fonctionnent avec Linux et Windows ?

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2003 Developpez.com Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.